SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Lenguajes Formales y Teoría de Autómatas
Profesora: Rina Familia
Josue A. Puntiel Mena 13-0972
Juan E. Rivera Garcia 13-0992
AUTÓMATAS FINITOS NO
DETERMINISTAS
Autómatas Finitos No Deterministas
 Un autómata finito es no determinista si:
 No  f(q,a) para algún a∑ desde algún q Q
  mas de una f(q,a) desde q Q con a∑
  f(q,λ)
q0
q2
q1

a a
a b
∑={a,b}
q0
q2
q1

a a
b
b
∑={a,b}
q0
q2
q1

λ a
b
b
∑={a,b}
Definición
 Un autómata finito no determinista (AFND) es un modelo
matemático definido por la quíntupla M=(Q, ∑,f, q0, F) en el que:
 Q es un conjunto finito llamado conjunto de estados.
 ∑ es un conjunto finito de símbolos, llamado alfabeto de
entrada.
 f es una aplicación llamada función de transición definida como:
f: Q x (∑ U { λ}) → P(Q)
donde P(Q) es el conjunto de las partes de Q, es decir, conjunto de
todos los subconjuntos que se pueden formar con elementos de Q
 q0 es un elemento o estado de Q, llamado estado inicial.
 F es un subconjunto de Q, llamado conjunto de estados finales.
Representación
 Tablas de transición.
 Diagramas de transición.
 q0 q1 q2
0 λ,2
0,1 0,2 1,2
λ
0 1 2 λ
q0 {q0,q1} {q0}  
q1 {q1}  {q1,q2} {q0,q2}
*q2
 {q2} {q2} 
Función de transición. Extensión a palabras
 Definición λ-clausura:
 Se llama λ-clausura de un estado al conjunto de estados a los que
puede evolucionar sin consumir ninguna entrada, lo denotaremos
como CL(q) o λ-clausura(q).
 CL(q) se define recursivamente:
 El estado q pertenece a la λ-clausura de q, qCL(q).
 Si el estado pCL(q) y hay una transición del estado p al estado r
etiquetada con una transición nula (λ), entonces r también está en
CL(q).
 Si PQ se llama λ-clausura de un conjunto de estados P a:
CL(P)=  CL(q)
qP
 Algoritmo para el cálculo de λ-clausura(P)
Procedimiento λ-clausura(P)
Viejos=
Nuevos=P
Mientras viejosnuevos hacer
Nuevos=viejos  {q / f(pi,λ)=q, piviejos}
Fmientras
λ-clausura(P)=nuevos
Fin_procedimiento
Función de transición. Extensión a palabras
 Si M=(Q,∑,f,q0,F) es un AFND se define la función de
transición asociada a palabras como la función
f’: Q x ∑* → P(Q) dada por:
 f’(q0,λ)=CL(q0)
 f’(P,λ)=P
 f’(P,ax)= f’( CL( f(q,a)),x)
qP
donde PQ, x∑* y a∑
Lenguaje aceptado por un AFND
 Una cadena x∑* es aceptada por un AFND M=(Q,∑,f,q0,F)
si y solo si
f’(q0,x)  F
En otro caso se dice que la cadena es rechazada por el
autómata.
 Dado un AFND M=(Q,∑,f,q0,F) se llama lenguaje aceptado o
reconocido por dicho autómata al conjunto de las palabras
de ∑* que acepta,
L(M)={x∑* / f’(q0,x)  F 
}
Simulación algorítmica de un AFND
 Entrada: cadena de entrada x que termina con un carácter fin de cadena o fin
de archivo (FDC).
Salida: La respuesta ACEPTADA si el autómata reconoce x NO ACEPTADA en
caso contrario
Método: aplicar f al estado al cual hay una transición desde el estado q a un
carácter de entrada c


Función reconocer()
A=CL(q0)
c= leer_carácter()
Mientras c != FDC
A=CL ( f(q,c))
qP
c= leer_carácter()
fmientras
Si A  F entonces
Devolver(ACEPTADA)
Sino
Devolver(NO ACEPTADA)
fsi
Equivalencia entre AFND y AFD
 A partir de un AFND con estados q0,…qm , construiremos un AFD
equivalente (que acepta el mismo lenguaje) con estados Q0,…Qn donde
q0, Q0, son los estados iniciales.
 Premisas:
 Se definió inductivamente el conjunto de estados C = λ-clausura(s):
 s  C.
 si t  C y  una transición vacía de t a u entonces u  C.
 Se define el conjunto de estados G = f(s , a) :
 si  una transición etiquetada con a entre s y t entonces t  G.
 Estas definiciones se generalizan para conjuntos de estados
S = { ... ti ... } :
 Si u  λ-clausura(ti) entonces u  λ-clausura(S)
 Si u  f(ti , a) entonces u  f(S , a).
(f(G,a) son los estados s alcanzables con a desde algún qG)
Equivalencia entre AFND y AFD
 Algoritmo de construcción de la tabla de transiciones del AFD:
1. se crea una nueva tabla T[estado,símbolo], inicialmente vacía.
2. se calcula Q0 = λ-clausura(q0)
3. se crea una entrada en T para Q0.
4. para cada casilla vacía T[Q,a] :
1. se asigna T[Q,a] = λ-clausura(f(Q,a))
2. si no existe una entrada en T para el estado T[Q,a], se crea
la entrada.
5. se repite 4 mientras existan casillas vacías.
Equivalencia entre AFND y AFD
 Ejemplo:
b
4
2
3
b
1
0
a
a, b
a
a,b
λ
b
λ
a
a b λ
0 1 1 2
1 2 1 3
2 0 4
3 4 1
*4 4 4
Equivalencia entre AFND y AFD
1. se crea una nueva tabla T[estado,símbolo], inicialmente vacía.
2. se calcula Q0 = λ-clausura(0) = {0,2}
3. se crea una entrada en T para Q0.
4. para cada casilla vacía T[Q,a] :
1. se asigna T[Q,a] = λ-clausura(f(Q,a))
λ-clausura(f(Q0={0,2},a))=λ-clausura(0,1)={0,1,2,3}=Q1
2. si no existe una entrada en T para el estado T[Q,a], se crea
la entrada.
a b
Q0 Q1
Q1
5. se repite 4 mientras existan casillas vacías.
a b λ
0 1 1 2
1 2 1 3
2 0 4
3 4 1
*4 4 4
a b
Q0
Equivalencia entre AFND y AFD
 El AFD equivalente es:
a b
Q0 Q1 Q2
Q1 Q3 Q2
*Q2 Q4 Q2
*Q3 Q3 Q2
*Q4 Q5 Q6
*Q5 Q5 Q2
*Q6 Q6 Q6
Autómatas finitos no deterministas

Weitere ähnliche Inhalte

Was ist angesagt?

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
Pablo Guerra
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
Omarzingm
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
Santiago Ramirez
 
Clase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministaClase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito determinista
mvagila
 

Was ist angesagt? (20)

Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
Autómatas Finitos
Autómatas FinitosAutómatas Finitos
Autómatas Finitos
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Red de Petri
Red de Petri Red de Petri
Red de Petri
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No Determinista
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Clase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministaClase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito determinista
 
Ejercicio de máquina de turing
Ejercicio de máquina de turingEjercicio de máquina de turing
Ejercicio de máquina de turing
 
Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.
 

Ähnlich wie Autómatas finitos no deterministas

Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplace
David Palacios
 
Correción del conector lógico ^
Correción del conector lógico ^Correción del conector lógico ^
Correción del conector lógico ^
JAlone Pain
 

Ähnlich wie Autómatas finitos no deterministas (20)

Autómatas finitos no deterministas actualizado
Autómatas finitos no deterministas actualizadoAutómatas finitos no deterministas actualizado
Autómatas finitos no deterministas actualizado
 
Clase afd
Clase afdClase afd
Clase afd
 
Maquinas Abstractas
Maquinas AbstractasMaquinas Abstractas
Maquinas Abstractas
 
Cuadro descriptivo
Cuadro descriptivoCuadro descriptivo
Cuadro descriptivo
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
(Sin soluiciones) s3 afnd y afd
(Sin soluiciones) s3   afnd y afd(Sin soluiciones) s3   afnd y afd
(Sin soluiciones) s3 afnd y afd
 
Presentacion Enguelbert Garcia
Presentacion Enguelbert GarciaPresentacion Enguelbert Garcia
Presentacion Enguelbert Garcia
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplace
 
Logica Matematica
Logica MatematicaLogica Matematica
Logica Matematica
 
Tema2
Tema2Tema2
Tema2
 
Afn´s
Afn´sAfn´s
Afn´s
 
Recapitulación
RecapitulaciónRecapitulación
Recapitulación
 
LOGICA
LOGICALOGICA
LOGICA
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)
 
Máquinas de turing o máquinas con cola
Máquinas de turing o máquinas con colaMáquinas de turing o máquinas con cola
Máquinas de turing o máquinas con cola
 
Ejercicios estructura
Ejercicios estructuraEjercicios estructura
Ejercicios estructura
 
Correción del conector lógico ^
Correción del conector lógico ^Correción del conector lógico ^
Correción del conector lógico ^
 
Las máquinas que están en varios lugares
Las máquinas que están en varios lugaresLas máquinas que están en varios lugares
Las máquinas que están en varios lugares
 
Teoría de Autómata
Teoría de AutómataTeoría de Autómata
Teoría de Autómata
 
Calculo proposicional
Calculo proposicionalCalculo proposicional
Calculo proposicional
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Autómatas finitos no deterministas

  • 1. Lenguajes Formales y Teoría de Autómatas Profesora: Rina Familia Josue A. Puntiel Mena 13-0972 Juan E. Rivera Garcia 13-0992 AUTÓMATAS FINITOS NO DETERMINISTAS
  • 2. Autómatas Finitos No Deterministas  Un autómata finito es no determinista si:  No  f(q,a) para algún a∑ desde algún q Q   mas de una f(q,a) desde q Q con a∑   f(q,λ) q0 q2 q1  a a a b ∑={a,b} q0 q2 q1  a a b b ∑={a,b} q0 q2 q1  λ a b b ∑={a,b}
  • 3. Definición  Un autómata finito no determinista (AFND) es un modelo matemático definido por la quíntupla M=(Q, ∑,f, q0, F) en el que:  Q es un conjunto finito llamado conjunto de estados.  ∑ es un conjunto finito de símbolos, llamado alfabeto de entrada.  f es una aplicación llamada función de transición definida como: f: Q x (∑ U { λ}) → P(Q) donde P(Q) es el conjunto de las partes de Q, es decir, conjunto de todos los subconjuntos que se pueden formar con elementos de Q  q0 es un elemento o estado de Q, llamado estado inicial.  F es un subconjunto de Q, llamado conjunto de estados finales.
  • 4. Representación  Tablas de transición.  Diagramas de transición.  q0 q1 q2 0 λ,2 0,1 0,2 1,2 λ 0 1 2 λ q0 {q0,q1} {q0}   q1 {q1}  {q1,q2} {q0,q2} *q2  {q2} {q2} 
  • 5. Función de transición. Extensión a palabras  Definición λ-clausura:  Se llama λ-clausura de un estado al conjunto de estados a los que puede evolucionar sin consumir ninguna entrada, lo denotaremos como CL(q) o λ-clausura(q).  CL(q) se define recursivamente:  El estado q pertenece a la λ-clausura de q, qCL(q).  Si el estado pCL(q) y hay una transición del estado p al estado r etiquetada con una transición nula (λ), entonces r también está en CL(q).  Si PQ se llama λ-clausura de un conjunto de estados P a: CL(P)=  CL(q) qP  Algoritmo para el cálculo de λ-clausura(P) Procedimiento λ-clausura(P) Viejos= Nuevos=P Mientras viejosnuevos hacer Nuevos=viejos  {q / f(pi,λ)=q, piviejos} Fmientras λ-clausura(P)=nuevos Fin_procedimiento
  • 6. Función de transición. Extensión a palabras  Si M=(Q,∑,f,q0,F) es un AFND se define la función de transición asociada a palabras como la función f’: Q x ∑* → P(Q) dada por:  f’(q0,λ)=CL(q0)  f’(P,λ)=P  f’(P,ax)= f’( CL( f(q,a)),x) qP donde PQ, x∑* y a∑
  • 7. Lenguaje aceptado por un AFND  Una cadena x∑* es aceptada por un AFND M=(Q,∑,f,q0,F) si y solo si f’(q0,x)  F En otro caso se dice que la cadena es rechazada por el autómata.  Dado un AFND M=(Q,∑,f,q0,F) se llama lenguaje aceptado o reconocido por dicho autómata al conjunto de las palabras de ∑* que acepta, L(M)={x∑* / f’(q0,x)  F  }
  • 8. Simulación algorítmica de un AFND  Entrada: cadena de entrada x que termina con un carácter fin de cadena o fin de archivo (FDC). Salida: La respuesta ACEPTADA si el autómata reconoce x NO ACEPTADA en caso contrario Método: aplicar f al estado al cual hay una transición desde el estado q a un carácter de entrada c   Función reconocer() A=CL(q0) c= leer_carácter() Mientras c != FDC A=CL ( f(q,c)) qP c= leer_carácter() fmientras Si A  F entonces Devolver(ACEPTADA) Sino Devolver(NO ACEPTADA) fsi
  • 9. Equivalencia entre AFND y AFD  A partir de un AFND con estados q0,…qm , construiremos un AFD equivalente (que acepta el mismo lenguaje) con estados Q0,…Qn donde q0, Q0, son los estados iniciales.  Premisas:  Se definió inductivamente el conjunto de estados C = λ-clausura(s):  s  C.  si t  C y  una transición vacía de t a u entonces u  C.  Se define el conjunto de estados G = f(s , a) :  si  una transición etiquetada con a entre s y t entonces t  G.  Estas definiciones se generalizan para conjuntos de estados S = { ... ti ... } :  Si u  λ-clausura(ti) entonces u  λ-clausura(S)  Si u  f(ti , a) entonces u  f(S , a). (f(G,a) son los estados s alcanzables con a desde algún qG)
  • 10. Equivalencia entre AFND y AFD  Algoritmo de construcción de la tabla de transiciones del AFD: 1. se crea una nueva tabla T[estado,símbolo], inicialmente vacía. 2. se calcula Q0 = λ-clausura(q0) 3. se crea una entrada en T para Q0. 4. para cada casilla vacía T[Q,a] : 1. se asigna T[Q,a] = λ-clausura(f(Q,a)) 2. si no existe una entrada en T para el estado T[Q,a], se crea la entrada. 5. se repite 4 mientras existan casillas vacías.
  • 11. Equivalencia entre AFND y AFD  Ejemplo: b 4 2 3 b 1 0 a a, b a a,b λ b λ a a b λ 0 1 1 2 1 2 1 3 2 0 4 3 4 1 *4 4 4
  • 12. Equivalencia entre AFND y AFD 1. se crea una nueva tabla T[estado,símbolo], inicialmente vacía. 2. se calcula Q0 = λ-clausura(0) = {0,2} 3. se crea una entrada en T para Q0. 4. para cada casilla vacía T[Q,a] : 1. se asigna T[Q,a] = λ-clausura(f(Q,a)) λ-clausura(f(Q0={0,2},a))=λ-clausura(0,1)={0,1,2,3}=Q1 2. si no existe una entrada en T para el estado T[Q,a], se crea la entrada. a b Q0 Q1 Q1 5. se repite 4 mientras existan casillas vacías. a b λ 0 1 1 2 1 2 1 3 2 0 4 3 4 1 *4 4 4 a b Q0
  • 13. Equivalencia entre AFND y AFD  El AFD equivalente es: a b Q0 Q1 Q2 Q1 Q3 Q2 *Q2 Q4 Q2 *Q3 Q3 Q2 *Q4 Q5 Q6 *Q5 Q5 Q2 *Q6 Q6 Q6