0% encontró este documento útil (0 votos)
11 vistas24 páginas

14 AFNs

El documento describe las diferencias entre autómatas finitos deterministas (AFD) y no deterministas (AFN), destacando que en un AFD el próximo estado es único, mientras que en un AFN pueden existir múltiples estados posibles. Además, se explica cómo los AFN pueden ser utilizados para aceptar cadenas específicas y cómo se puede convertir un AFN en un AFD equivalente. Finalmente, se establece que ambos tipos de autómatas reconocen la misma clase de lenguajes, siendo el AFN a menudo más simple de construir.

Cargado por

rsoria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas24 páginas

14 AFNs

El documento describe las diferencias entre autómatas finitos deterministas (AFD) y no deterministas (AFN), destacando que en un AFD el próximo estado es único, mientras que en un AFN pueden existir múltiples estados posibles. Además, se explica cómo los AFN pueden ser utilizados para aceptar cadenas específicas y cómo se puede convertir un AFN en un AFD equivalente. Finalmente, se establece que ambos tipos de autómatas reconocen la misma clase de lenguajes, siendo el AFN a menudo más simple de construir.

Cargado por

rsoria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Autómatas Finitos

Determinismo × No Determinismo

● Determinismo (AFD)
Los AFs que vimos hasta ahora funcionan así: cuando la
máquina está en un dado estado y lee el próximo símbolo
de entrada, sabemos cual será el próximo estado, está
determinado, el próximo estado es único.
Para cada cadena w, existe una única secuencia de
estados.
Llamamos eso de computación determinística.
● No Determinismo (AFN)
En una máquina no determinística, varias elecciones
pueden existir para un siguiente estado en cualquier punto.
Autómatas Finitos No Determinísticos
Considere un AFN N1 que acepta las cadenas sobre el alfabeto
{a,b} que poseen aa o bb como subcadena.
a
a,b q0 q1

b a
b a,b
q2 q3

En un AFN un estado puede tener cero, Todo estado de un AFD siempre tiene
una o muchas flechas saliendo para exactamente una flecha de transición
cada símbolo del alfabeto. saliendo para cada símbolo en el alfabeto
Autómatas Finitos No Determinísticos

● Vamos a construir un AFN que acepta cadenas con un


número par de 1s o ímpar de 0s a partir de esos AFDs:
0 0

1
q1 q2
ε 1
1 1
q0
0
ε q3 q4
En general, un AFN puede 0
tener flechas rotuladas con
miembros del alfabeto o con ε.
Autómatas Finitos
La computación en un AFN

● No determinismo puede ser visto como una especie de


computación paralela en la cual múltiples e
independientes procesos pueden estar ejecutándose
concurrentemente.
● La máquina puede estar con varios estados activos al
mismo tiempo
Autómatas Finitos - La computación en un
AFN 0,1

1 0,ε 1
0,1 q1 q2 q3 q4

● Después de leer un símbolo, la máquina puede dividirse en


múltiples copias de sí misma y sigue todas las posibilidades en
paralelo.
● Si existieren elecciones subsecuentes, la máquina se divide
nuevamente.
● Si el próximo símbolo leido no aparece en cualquiera de las flechas
saliendo del estado ocupado por una copia de la máquina, aquella
copia muere, juntamente con la ramificación de la computación
asociada a ella.
● Finalmente, si cualquiera de esas copias de la máquina está en un
estado de aceptación en el final de la entrada, el AFN acepta la
cadena de entrada.
Autómatas Finitos
La computación en un AFN
0,1 q1
1 0,ε 1
0,1 q1 q2 q3 q4
q1

q1 q2 q3

Entrada 010110 X
q1 q3
Lectura: 0 1 0 1 1 0
q1 q2 q3 q4
X
q1 q2 q3 q4 q4
X
q1 q3 q4 q4
Autómatas Finitos No Determinísticos
Descripción Formal

● En un AFD la función de transición toma un estado y un


símbolo de entrada y produce el próximo estado.
● En un AFN la función de transición toma un estado y un
símbolo de entrada o la cadena vacía y produce el
conjunto de próximos estados posibles.
● De ese modo, vamos a usar la notación Σε = Σ ∪ ε.
● Y definir la función de transición de la siguiente forma:
δ: Q×Σε→℘(Q).
Autómatas Finitos No Determinísticos
Descripción Formal

Un autómata finito no determinístico es una 5-upla


(Q, Σ, δ, q0, F),
Donde:
1. Q es un conjunto finito denominado los estados,
2. Σ es un conjunto finito denominado alfabeto,
3. δ: Q×Σε→℘(Q) es la función de transición,
4. q0 ∈ Q es el estado inicial, y
5. F⊆Q conjunto de estados de aceptación (o finales).
Autómatas Finitos No Determinísticos
Descripción Formal: Ejemplo
0,1

1 0,ε q3
1
0,1 q1 q2 q4

La definición formal de ese AFN es (Q, Σ, δ, q1, F), donde:

Q={ } δ 0 1 ε
Σ={ } q1 { } { } { }

es el estado inicial q2 { } { } { }

F={ } q3 { } { } { }

q4 { } { } { }
Autómatas Finitos No Determinísticos
Descripción Formal: Ejemplo
0,1

1 0,ε q3
1
0,1 q1 q2 q4

La definición formal de ese AFN es (Q, Σ, δ, q1, F), donde:

Q = {q1,q2,q3,q4} δ 0 1 ε
Σ = {0,1} q1 {q1} {q1,q2} ∅

q1 es el estado inicial q2 {q3} ∅ {q3}

F = {q4} q3 ∅ {q4} ∅

q4 {q4} {q4} ∅
Otro ejemplo

• Vamos a computar la cadena 1001

Estados activos Lectura


1001
Más ejemplos

L(M) = { w ∈ {0,1}* : el 3er símbolo a partir del fin es 1}

• El no determinismo a veces es visto como un poder de


adivinación
Más ejemplos

{ w ∈ {0,1}* : 01 es subcadena de w}
Más ejemplos

Diseñe un AFN que reconozca


{ w ∈ {0,1}* : |w|1 ≥ 1 existe un n° par de 0s después el
último 1}
Más ejemplos

Diseñe un AFN que reconozca {w ∈ {a,b,c}* : el último


símbolo de w tiene al menos más de una ocurrencia}
Autómatas Finitos
¿Por qué dos modelos?

● Note que todo AFD es un AFN


● ¿Talvés los AFN sean más poderosos?
● Él ciertamente es más simple (más pequeño y fácil
de construir) en algunos casos que la versión
deterministica
Autómatas Finitos
Equivalencia entre AFNs y AFDs

● Autómatas finitos determinísticos y no determinísticos


reconocen la misma clase de lenguajes.
● Dos máquinas son equivalentes si ellas reconocen el
mismo lenguaje.
● Teorema: Todo autómata finito no determinístico tiene un
autómata finito determinista equivalente.
Autómatas Finitos
Equivalencia entre AFNs y AFDs

● Vamos a convertir un AFN en un AFD equivalente que lo


simule.
● Si k es el número de estados del AFN, el tiene 2k
subconjuntos de estados.
● Cada subconjunto corresponde a una de las
posibilidades que el AFD tiene que recordar, por tanto
AFD que simula el AFN tendrá 2k estados.
Equivalencia entre AFNs e AFDs
N (Q, Σ, δ,q0, F) a a
a,b 1 2 3

M (℘(Q), Σ, δ’, qo’, F’) δ a b


1 {1,2} {1}
Q’= ℘(Q)
2 {3} ∅
3 ∅ ∅
q0’= {1}

F’ = { R∈ Q’ | R contiene un
estado de aceptación de N}
δ’ (R,s)= unión de δ(q,s) para cada q ∈ R.
Equivalencia entre AFNs e AFDs
N (Q, Σ, δ,q0, F) a a
a,b 1 2 3

M (℘(Q), Σ, δ’, qo’, F’) ∅ δ a b


b 1 {1,2} {1}
Q’= ℘(Q)
2 {3} ∅
{1} {2} {3}
3 ∅ ∅
q0’= {1}
a b δ’ a b
{1,3} {2,3} {1} {1,2} {1}
{1,2}
{1,2} {1,2,3} {1}
a b
{1,2,3} {1,2,3} {1}

a {1,2,3} F’ = { R∈ Q’ | R contiene un
estado de aceptación de N}
δ’ (R,s)= unión de δ(q,s) para cada q ∈ R.
Equivalencia entre AFNs y AFDs
Introduciendo las transiciones ε
N = (Q, Σ, δ,q0, F)
1 δ a b ε
1 ∅ {2} {3}
b
ε
a 2 {2,3} {3} ∅
3 {1} ∅ ∅
a 2 3
a,b Para cualquier estado R de M definimos
E(R) como siendo la colección de estados
M = (℘(Q), Σ, δ’, qo’, F’) que pueden ser alcanzados a partir de R
yendo solamente a lo largo de flechas ε,
q0’= {1,3} incluyendo los propios miembros de R.

Formalmente, para R ∈ ℘(Q) sea


Luego q0’ = E({q0}) E(R) = {q | q puede ser alcanzado a partir
q0’ = E({1}) = {1,3} de R yendo a lo largo de 0 o más flechas ε}
N=(Q, Σ, δ,q0, F) 1

b a
ε
a 2 3
a,b
M=(℘(Q), Σ, δ’, qo’, F’)
δ’ (R,s)= unión de E(δ(q,s))
para cada q ∈ R.
N=(Q, Σ, δ,q0, F) 1

b a
ε
a 2 3
a,b
M=(℘(Q), Σ, δ’, qo’, F’)
δ’ (R,s)= unión de E(δ(q,s))
para cada q ∈ R.
a,b ∅
b
b a
{1} {2} {3}
a
b a b
a
{1,2} {1,3} {2,3} {1,2,3}
a b
Autómatas Finitos
Equivalencia entre AFNs y AFDs
Como acabamos de ver:
● Teorema: Todo autómata finito no determinista tiene
un autómata finito determinista equivalente.

Luego,
● Corolario: Un lenguaje es regular si y sólamente si
algún autómata finito no determinista la reconoce.

También podría gustarte