Sei sulla pagina 1di 22

AUTOMATAS Y COMPILADORES | INGENIERIA DE

SISTEMAS
1
CURSO:
o AUTÓMATAS Y COMPILADORES

DOCENTE:
o Mg. TORRES VILLANUEVA MARCELINO

INTEGRANTES:
o MIULER
o CHRISTIAN STEVEN
o SERIN NERY, ELMER
o SILVA GUEVARA, MANUEL
o ZAVALETA CORTEZ, JEYSON

AUTOMATAS Y COMPILADORES | INGENIERIA DE


SISTEMAS
2
3

AUTÓMATA FINITO DETERMINISTA

➧ Un autómata finito determinista es una quíntupla que se denota de la manera genérica por:

𝑄, 𝛴, 𝑆, 𝐹, 𝛿
Q ∑ S F δ
Conjunto finitos Alfabeto de Estado inicial Colección de Función de
de ESTADOS ENTRADA estados FINALES TRANSICIÓN

➧ Autómata finito determinista es aquel que tiene todas sus transiciones no vacías y que
por cada símbolo desde un estado inicial se llega a un único estado final.
➧ Los AFD son definiciones ideales dentro de los lenguajes regulares por su cercanía
formal hacia la creación de un analizador léxico, en tanto sus transiciones son únicas
por símbolo, realizándose con mayor facilidad a la hora de su implementación en
software.
4

REPRESENTACIÓN DE UN AFD
Con una tabla
o Se ponen tantas filas como estados, y tantas
Sea 𝑀1 = 𝑄, ∑ , 𝑆, 𝐹, 𝛿 δ a b
columnas como símbolos forman el alfabeto.
o Marcamos el estado inicial con una flecha de
donde:
→𝑞0 𝑞1 𝑞2 entrada y cada uno de los estados finales con un
𝑄 = { 𝑞0 , 𝑞1 , 𝑞2 } asterisco.
𝑞1 𝑞0 𝑞1
∑ = {𝑎, 𝑏} o En el cruce de la fila marcada con el estado q y la
∗ 𝑞2 𝑞2 𝑞2
𝑆 = 𝑞0 columna marcada con el símbolo a del alfabeto
ponemos el estado δ(q,a).
F={𝑞2 }
δ definida como: Con un diagrama
δ(𝑞0 , a)= 𝑞1 o Cada estado no final se representa con un círculo.
δ(𝑞1 ,a)=𝑞0 o Cada estado final se representa con un doble
δ(𝑞2 , a )=𝑞2 círculo.
δ(𝑞0 , b )=𝑞2 o Se señala el estado inicial con una flecha
δ(𝑞1 , b )=𝑞1 entrando, sin etiqueta.
δ(𝑞2 , b )= 𝑞2 o Por cada transición δ(q,a)=t se dibuja una flecha
dirigida del estado de partida “q” al de llegada
“t” etiquetada “a”
LENGUAJE ACEPTADO POR UN AFD. 5

Es el conjunto de todas las palabras aceptadas, es decir:

EJEMPLO

AUTOMATAS Y COMPILADORES INGENIERIA DE SISTEMAS


6

AUTÓMATA FINITO NO DETERMINISTA

➧ Un autómata finito determinista es una quíntupla que se denota de la manera genérica por:

𝑄, 𝛴, 𝑆, 𝐹, ∆
Q ∑ S F δ
Conjunto finitos Alfabeto de Estado inicial Colección de Relación de
de ESTADOS ENTRADA estados FINALES TRANSICIÓN

➧ Autómata finito no determinista es aquel que tiene transiciones vacías o que por cada
símbolo de entrada desde un estado , existe mas de una transición posible.
➧ Se dice que es “no determinista” porque la transición desde un estado puede tener
múltiples destinos.
Es un autómata finito que tiene transiciones vacías o que por
cada símbolo de entrada desde un estado , existe mas de una
transición posible.

Se dice que es “no determinista” porque la transición desde


un estado puede tener múltiples destino.

En un AFND puede darse cualquiera de estos dos casos:


• Que existan transiciones del tipo δ(q,a)=q1 y δ(𝑞0 ,b)= 𝑞0 y
δ(q,a)=q2, siendo q1 ≠ q2; δ(𝑞0 ,b)= 𝑞1
• Que existan transiciones del tipo δ(q, ε), siendo q un
estado no-final, o bien un estado final pero con transiciones
hacia otros estados.
EJEMPLO

Evaluar la cadena 00101

𝑞0 𝑞0 𝑞0 𝑞0 𝑞0 𝑞0 La cadena
𝑞1 𝑞1 𝑞2 𝑞1 𝑞2 00101 si es
aceptada por
Estado final o de
aceptación
el AFND

0 0 1 0 1
EJEMPLO

AFND que acepte el lenguaje denotado por la expresión regular (ab|aba)⋆.


Son las cadenas que se pueden descomponer en secuencias ab o aba.
M = ({{q0,q1,q2,q3},{a,b}, δ,{q0},{q0})
TABLA DE TRANSICIONES
δ a b

q0 {q1,q2} {}

q1 {} q0

q2 {} q3

q3 q0 {}
AFND-ε que acepte el lenguaje denotado por la expresión regular
(ab|aba)⋆.
Son las cadenas que se pueden descomponer en secuencias ab o aba.
M = ({{q0,q1,q2},{a,b}, δ,{q0},{q0})
TABLA DE TRANSICIONES
δ a b

q0 q1 {} {}

q1 {} q2 {}

q2 q0 {} q0
11

CONVERSIÓN AFND → AFD

Todo AFND puede ser transformado a AFD utilizando un algoritmo que transforma
los estados del AFND en nuevos estados que son subconjuntos de los estados
originales y aplica a los mismos la clausura para confirmar la conexidad entre
cada uno de los componentes y así eliminar el indeterminismo.

➧ ¿POR QUÉ?

La existencia de este método permite la conversión de cualquier AFND a un AFD


equivalente, esto permite la eliminación del indeterminismo estricto y con esto la
simplificación de la simulación o implementación del autómata finito.
Conversión de un Autómata Finito no
Determinista a un Autómata Finito
Determinista
Diagrama de Transición de un
AFND
• Q={q0, q1, q2, q3}
• A={a,b}
• q0= q0
• F= {q0, q1}

Tabla de
Transición
Tabla de
Transición Procedimiento
Sea el AFND:
𝑄 = 𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4
𝒂
𝑆 = 𝑞0
𝒂 𝒃
𝒒𝟎 𝒒𝟏 𝒒𝟐 𝐹 = 𝑞2 , 𝑞3 , 𝑞4
𝒃 𝒂
Σ = 𝑎, 𝑏

𝒒𝟑 𝒒𝟒 ∆ 𝒂 𝒃
→ 𝐪𝟎 {𝑞1 , 𝑞4 } {𝑞3 }
𝒃
𝐪𝟏 {𝑞1 } {𝑞2 }
𝐪𝟐 ∅ ∅

𝑎∗ 𝑏 ∪ 𝑎𝑏 ∗ 𝐪𝟑 ∅ ∅
𝐪𝟒 ∅ {𝑞4 }
AFND → AFD:

𝒂 𝒃
𝒒𝟎 𝒒𝟏 𝒒𝟐
∆ 𝒂 𝒃
𝒂
𝒃 A → 𝐪𝟎 {𝑞1 , 𝑞4 } {𝑞3 }
B 𝒒𝟏 , 𝒒𝟒 {𝑞1 } {𝑞𝟐 , 𝑞4 }
𝒒𝟑 𝒒𝟒 C 𝐪𝟑 ∅ ∅
D 𝐪𝟏 {𝑞1 } {𝑞2 }
𝒃
E 𝒒𝟐 , 𝒒𝟒 ∅ {𝑞𝟒 }
F 𝐪𝟐 ∅ ∅
G 𝐪𝟒 ∅ {𝑞4 }
AFND → AFD:
𝒂 𝒃 𝛅 𝒂 𝒃
A → 𝐪𝟎 {𝑞1 , 𝑞4 } {𝑞3 } → 𝑨 𝐵 C
B 𝑓𝑖𝑛𝑎𝑙 𝒒𝟏 , 𝒒𝟒 {𝑞1 } {𝑞𝟐 , 𝑞4 } 𝑓𝑖𝑛𝑎𝑙 𝑩 D E
C 𝑓𝑖𝑛𝑎𝑙 𝐪𝟑 ∅ ∅ 𝑓𝑖𝑛𝑎𝑙 𝑪 − −
D 𝐪𝟏 {𝑞1 } {𝑞2 } 𝑫 D F
E 𝑓𝑖𝑛𝑎𝑙 𝒒𝟐 , 𝒒𝟒 ∅ {𝑞𝟒 } 𝑓𝑖𝑛𝑎𝑙 𝑬 − G
F 𝑓𝑖𝑛𝑎𝑙 𝐪𝟐 ∅ ∅ 𝑓𝑖𝑛𝑎𝑙 𝑭 − −
G 𝑓𝑖𝑛𝑎𝑙 𝐪𝟒 ∅ {𝑞4 } 𝑓𝑖𝑛𝑎𝑙 𝑮 − G
AFD:
𝒂 𝒂 𝒃
𝑨 𝑩 𝑫 𝑭
𝒃 𝒃 𝒃

𝒃 𝛅 𝒂 𝒃
𝑪 𝑬 𝑮
→ 𝑨 𝐵 C
𝑓𝑖𝑛𝑎𝑙 𝑩 D E
𝑸 = 𝑨, 𝑩, 𝑪, 𝑫, 𝑬, 𝑭, 𝑮 𝑓𝑖𝑛𝑎𝑙 𝑪 − −
𝑺=𝑨 𝑫 D F
𝑓𝑖𝑛𝑎𝑙 𝑬 − G
𝑭 = 𝑩, 𝑪, 𝑬, 𝑭, 𝑮 𝑓𝑖𝑛𝑎𝑙 𝑭 − −
𝜮 = 𝒂, 𝒃 𝑓𝑖𝑛𝑎𝑙 𝑮 − G
COMPROBACIÓN:
𝒂 𝑎∗ 𝑏 ∪ 𝑎𝑏 ∗
𝒒𝟎 𝒂
𝒒𝟏 𝒃
𝒒𝟐 𝒂𝒂𝒃 ∈ 𝑳
AFND 𝒂𝒃 ∈ 𝑳
𝒃 𝒂
𝒂𝒃𝒃𝒃𝒃𝒃 ∈ 𝑳
𝒒𝟑 𝒒𝟒 𝒂𝒂 ∉ 𝑳
𝒂𝒃𝒂 ∉ 𝑳
𝒃
𝒂𝒃𝒃𝒂𝒂𝒃 ∉ 𝑳
AFD 𝑨
𝒂
𝑩
𝒂
𝑫
𝒃
𝑭
𝒃 𝒃 𝒃

𝒃
𝑪 𝑬 𝑮
EJEMPLO: AFND QUE ACEPTE CADENAS QUE
CONTENGAN AL MENOS DOS CEROS SEGUIDOS.

C 0
B
0
A

0,1
Tabla de
Transición
AFND 0 1

A A,B A

B C ---

C --- ---

1
Procedimiento 0
0 1
0 0 0 1
q0 A A,B A q0 q1 q2
q0 q1 q0
q1 A,B A,B,C A
q1 q2 q0
q2 A,B,C A,B,C A
1 AFD q2 q2 q0
1