Está en la página 1de 44

UNVERSIDAD NACIONAL DEL ALTIPLANO

Facultad de Ingeniería Mecánica, Electrónica y Sistemas


Escuela Profesional de Ingeniería de Sistemas

Teoría de Lenguajes y
Autómatas

Ing. Alodia Flores Arnao


Autómatas Finitos
Contenido

¿Por qué estudiar autómatas?


1

Autómatas Finitos
2

Tipos: AFD y AFND


3
3
¿Por qué estudiar la Teoría de Autómatas?

● Los computadores reales son bastante complejos. Ejemplo,


especificar una teoría matemática que nos permita estudiarlo.
● Entonces se utilizan modelos computacionales.
● Modelo: Abstracción de algunas características de la realidad.
● Ejemplos de modelos computacionales:
■ Autómatas finitos
■ Máquinas de Turing
■ Cálculo lambda
■ Máquina RAM

4
¿Por qué estudiar la Teoría de Autómatas?

● La teoría de autómatas es el estudio de máquinas de computación


abstractos.
● Lo que Turing buscaba:
■ Describir en forma precisa la frontera entre lo que una
computadora puede hacer y lo que no.
● Es entre 1940 y 1950 que surgen las máquinas hoy llamadas
“autómatas finitos”.

5
Autómata Finito
Determinista
AUTÓMATA FINITO DETERMINISTA (AFD)

A=(Q,Σ,δ,q0,F)
● Es aquel que solo puede estar en un único estado después de leer
cualquier secuencia de entradas.
● Determinista implica que para cada entrada sólo existe uno y sólo
un estado al que el autómata puede hacer la transición a partir de
su estado actual.

7
A=(Q,Σ,δ,q0,F) AFD
Estados
Conjunto de Estado finales
de estados inicial
Alfabeto Función de
transición
 :Q → Q
Σ a b a
b a q1 b
q0 q1 q0
Q q1 q1 q2 q0 b
q2
a
q2 q2 q2
¿Cómo procesa las cadenas un AFD?

● De qué manera decide aceptar o no una secuencia de símbolos de entrada.


● El lenguaje del AFD es el conjunto de todas las cadenas que acepta.
● Pasos a seguir:
○ Dada una secuencia de símbolos de entrada: 𝑎1 , 𝑎2 , … , 𝑎𝑛
○ Estado inicial 𝑞0 .
○ Se consulta la función de transición 𝛿. Por ejemplo: 𝛿 𝑞0 , 𝑎1 = 𝑞1 para
hallar el estado al que pasará el autómata “A” después de procesar el
primer símbolo de entrada 𝑎1 . Se realiza este paso para los siguientes
símbolos. Entonces:
∀ 𝑞1 , 𝑞2 , … , 𝑞𝑛 tal que 𝛿 𝑞𝑖−1 , 𝑎𝑖 = 𝑞𝑖 para todo i.
○ Si 𝑞𝑛 pertenece a F, entonces la entrada 𝑎1 , 𝑎2 ,…, 𝑎𝑛 se acepta, de lo
contrario se rechaza.

9
Ejemplo:

● Especificar el autómata que acepte únicamente todas las cadenas de 0s y


1s que contengan la secuencia “01” en cualquier posición de la cadena.

𝒘 𝒘 𝒕𝒊𝒆𝒏𝒆 𝒍𝒂 𝒇𝒐𝒓𝒎𝒂 𝒙𝟎𝟏𝒚 𝒑𝒂𝒓𝒂 𝒂𝒍𝒈𝒖𝒏𝒂𝒔 𝒄𝒂𝒅𝒆𝒏𝒂𝒔 𝒅𝒐𝒏𝒅𝒆 𝒙 𝒆 𝒚 𝒄𝒐𝒏𝒔𝒕𝒂𝒏 𝒅𝒆 𝟎𝒔 𝒚 𝟏𝒔

● O dicho de otra forma:


𝑥01𝑦 𝑥 𝑒 𝑦 𝑠𝑜𝑛 𝑐𝑎𝑑𝑒𝑛𝑎𝑠 𝑐𝑢𝑎𝑙𝑒𝑠𝑞𝑢𝑖𝑒𝑟𝑎 𝑓𝑜𝑟𝑚𝑎𝑑𝑎𝑠 𝑝𝑜𝑟 0𝑠 𝑦 1𝑠 .

● ¿Qué cadenas acepta este lenguaje? Ejemplo:01, 11010, 10011.

● ¿Qué cadenas no pertenecen a este lenguaje? Ejemplo:𝜀, 0, 111000.

10
Especificación del AFD

● Se sabe que el Ʃ={0,1}.


● Tiene un conjunto de estados Q, donde su estado inicial será 𝑞0
● El AFD debe recordar las entradas leídas, entonces:
❑ ¿Ha leído ya una subcadena 01?
❑ ¿Aún no ha leído la secuencia 01, pero sí un 0?
❑ ¿Aún no ha leído la secuencia 01, acaba de iniciar o ha leído un 1?
● De 3: Representado por 𝑞0 , se requiere leer un 0 seguido de un 1, pero si estando ahí
se lee primero un 1, permanece en ese estado. 𝛿 𝑞0 , 1 = 𝑞0
● De 2: Estando en 𝑞0 se lee un 0, se irá a otro estado 𝑞2 , pero se requiere un 1.
𝛿 𝑞0 , 0 = 𝑞2
● De 1: Estando en 𝑞2 , si se lee un 0 no cambia nada, pero se requiere un 1. si se lee un
1 se irá a un estado de aceptación. 𝛿 𝑞2 , 0 = 𝑞2 , 𝛿 𝑞2 , 1 = 𝑞1

11
Especificación del AFD

● Estando en 𝑞1 , ya se ha leído la entrada 01, entonces:


𝛿 𝑞1 , 0 = 𝑞1
𝛿 𝑞1 , 1 = 𝑞1
● Por lo tanto: Q = 𝑞0 , 𝑞1 , 𝑞2 y F = 𝑞1

● Especificación: A = 𝑞0 , 𝑞1 , 𝑞2 , 0,1 , 𝛿, 𝑞0 , 𝑞1

● Existen otras notaciones:


■ Diagrama de transiciones (grafo).
■ Tabla de transiciones (ordenación tabular de 𝛿).

12
Diagrama de transiciones (grafo).

● Del ejemplo anterior:

13
Tabla de transiciones

0 1
● Del
→ ejemplo
𝒒𝟎 anterior:𝒒𝟐 𝒒𝟎
∗ 𝒒𝟏 𝒒𝟏 𝒒𝟏
𝒒𝟐 𝒒𝟐 𝒒𝟏

14
¿Qué define un AFD?

● Un AFD define un lenguaje : el conjunto de todas las cadenas que dan


lugar a una secuencia de transiciones desde el estado inicial hasta un
estado de aceptación.
● En términos del diagrama de transiciones, el leguaje de un AFD es el
conjunto de etiquetas ubicadas a lo largo de todos los caminos que van
desde el estado inicial a cualquier estado de aceptación.

15
Extensión de 𝜹
Estado en el que A se
encuentra después de procesar
A=(Q,Σ,δ,q0,F) todos los símbolos excepto
el último de la cadena w.

𝛿 ∗ (q, w)= 𝛿(𝛿 ∗ (q, x),a)


Ejemplo: w = 1101,
Se divide en x = 110

Si 𝛿 (q, x)= p Y a = 1.

𝛿 ∗ (q, w)= 𝛿(p, a)


Ejemplo:

● Diseñe un AFD que acepte el siguiente lenguaje:


L = 𝑤 𝑤 𝑡𝑖𝑒𝑛𝑒 𝑢𝑛 𝑛ú𝑚𝑒𝑟𝑜 𝑝𝑎𝑟 𝑑𝑒 𝑐𝑒𝑟𝑜𝑠 𝑦 𝑢𝑛 𝑛ú𝑚𝑒𝑟𝑜 𝑝𝑎𝑟 𝑑𝑒 𝑢𝑛𝑜𝑠

● El AFD debe contar el número de ceros y unos en módulo 2.

● El estado se emplea para recordar si el número de 0s es par o no.


De igual forma para los 1s.

17
Solución:
● Se determinan cuatro estados:
■ 𝒒𝟎 : Número de 0s y 1s leídos es par.
■ 𝒒𝟏 : Número de 0s leídos es par, pero de 1s es impar.
■ 𝒒𝟐 : Número de 1s leídos es par, pero de 0s es impar.
■ 𝒒𝟑 : Número de 0s y 1s leídos es impar.
● Donde:
■ 𝒒𝟎 es el estado inicial y estado de aceptación único (Antes de leer
cualquier cadena, no hay 0s ni 1s. Cero es par). Describe de forma
exacta la condición para que una secuencia de 0s y 1s ∈ al
lenguaje L
● Especificación del AFD para el lenguaje L:
A = 𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 0,1 , 𝛿, 𝑞0 , 𝑞0
18
Diagrama de transición y tabla de transiciones

0 1
∗→ 𝒒𝟎 𝒒𝟐 𝒒𝟏
𝒒𝟏 𝒒𝟑 𝒒𝟎
𝒒𝟐 𝒒𝟎 𝒒𝟑
𝒒𝟑 𝒒𝟏 𝒒𝟐

19
Comprobación

● Suponga que la entrada es 110101. Entonces:


𝛿 ∗ 𝑞0 , 110101 = 𝑞0
● Calcular 𝛿 𝑞0 , 𝑤 para cada prefijo de 110101:

■ 𝛿 𝑞0 , 𝜀 = 𝑞0
∗ ∗
■ 𝛿 𝑞0 , 1 = 𝛿(𝛿 𝑞0 , 𝜀 ,1) = 𝛿 𝑞0 , 1 = 𝑞1
∗ ∗
■ 𝛿 𝑞0 , 11 = 𝛿(𝛿 𝑞0 , 1 ,1) = 𝛿 𝑞1 , 1 = 𝑞0
∗ ∗
■ 𝛿 𝑞0 , 110 = 𝛿(𝛿 𝑞0 , 11 ,0) = 𝛿 𝑞0 , 0 = 𝑞2
∗ ∗
■ 𝛿 𝑞0 , 1101 = 𝛿(𝛿 𝑞0 , 110 ,1) = 𝛿 𝑞2 , 1 = 𝑞3
∗ ∗
■ 𝛿 𝑞0 , 11010 = 𝛿(𝛿 𝑞0 , 1101 ,0) = 𝛿 𝑞3 , 0 = 𝑞1
∗ ∗
■ 𝛿 𝑞0 , 110101 = 𝛿(𝛿 𝑞0 , 11010 ,1) = 𝛿 𝑞1 , 1 = 𝑞0

20
El lenguaje de un AFD

● El lenguaje de un AFD A=(Q,𝛴, 𝛿,q0,F) se designa por L(A) y se define


como:
L(A) = 𝑤 𝛿 ∗ q0, 𝑤 𝑝𝑒𝑟𝑡𝑒𝑛𝑒𝑐𝑒 𝑎 𝐹

Es decir:
● El lenguaje de A es el conjunto de cadenas w que parten del estado
inicial q0 y van hasta uno de los estados de aceptación.
● Si L es L(A) para un determinado AFD A, entonces decimos que L es un
lenguaje regular.

21
Autómata Finito No
Determinista

22
Autómata Finito No Determinista

● Tiene la capacidad de estar en varios estados a la vez.


● Palabra clave “conjeturar” sobre su entrada.
● Es preciso definir los AFN y demostrar que aceptan un
lenguaje que también es aceptado por algunos AFD (lenguaje
regular).
● Son más sencillos de diseñar que los AFD.
● Es posible convertir un AFN e un AFD.

23
Autómata Finito No Determinista

● Está formado también por un conjunto finito de estados, un conjunto finito de


símbolos de entrada, un estado inicial y un conjunto de estados de aceptación.
● También tiene una función de transición, pero esta devuelve un conjunto de cero,
uno o más estados (en lugar de devolver sólo un estado, como lo hacen los AFD).

24
AUTÓMATA FINITO NO DETERMINISTA (AFN)

A=(Q,Σ,δ,q0,F)
● Al igual que el AFD está formado por una quíntupla de elementos.
● Donde:
○ Q: conjunto finito de estados.
○ Σ: un alfabeto, conjunto finito de símbolos de entrada.
○ q0: un elemento de Q, estado inicial.
○ F, un subconjunto de Q, conjunto de estados finales (o de aceptación).
○ δ , la función de transición, es una función que toma como argumentos un estado de
Q y un símbolo de entrada de Σ y devuelve un subconjunto de Q.
● La única diferencia entre un AFN y un AFD se encuentra en el tipo de valor que devuelve
δ : un conjunto de estados en el caso de un AFN y un único estado en el caso de un AFD.

25
Ejemplo: Los movimientos del tablero de ajedrez

• Estados = cada cuadrado (posición).


• Entradas = r (moverse a una posición roja adyacente) y b
(moverse a una posición negra adyacente).
• El estado inicial y el estado final están en las esquinas
opuestas.

26
Ejemplo: Tablero de ajedrez – (2)

1 2 3
r b
1 2,4 5
2 4,6 1,3,5
4 5 6
3 2,6 5
4 2,8 1,5,7
7 8 9
5 2,4,6,8 1,3,7,9
6 2,8 3,5,9
r b b 7 4,8 5
1 2 1 5 8 4,6 5,7,9
4 3 1 * 9 6,8 5
5 3

7 7

9 Aceptar, pues alcanzó el estado final


27
Función de Transición de un AFN

● δ(q, a) conjunto de estados.


● Extiende las cadenas de la siguiente manera:
● Regla base: δ (q, ε) = {q}
● Por inducción: δ (q, wa) = la unión sobre todos los estados
p en δ (q, w) de δ (p, a)

28
Lenguaje de un AFN

● Una cadena w es aceptada por una AFN si δ(q0, w)


contiene al menos un estado final.
● Es decir, existe una secuencia de transiciones válidas de
q0 a un estado final dada la entrada w.
● El lenguaje del AFN es el conjunto de cadenas que acepta.

29
Ejemplo de AFN

● Conjunto de todas las cadenas con dos a’s consecutivas o dos b’s consecutivas:

● Tener en cuenta que algunos estados tienen una transición vacía en a o b, y


algunos tienen múltiples transiciones en a o b.
30
Ejemplo: Lenguaje de un AFN

● Para nuestro tablero de ajedrez AFN vimos que se acepta


rbb.
● Si la entrada consta solo de b’s, el conjunto de estados
accesibles alterna entre {5} y {1,3,7,9}, por lo que solo se
aceptan cadenas de b’s de longitud uniforme y no vacías.
● ¿Qué pasa con las cadenas con al menos una r?

1 2 3

4 5 6

7 8 9

31
Equivalencia entre un AFD y un AFN

● Un AFN puede convertirse en un AFD que acepte el mismo


lenguaje.
● Si δD(q, a) = p, le permite al AFN tener una δN(q, a) = {p}.
● Entonces, el AFN siempre está en un conjunto que contiene
exactamente un estado: el estado en el que se encuentra el AFD
después de leer la misma entrada.

32
Equivalencia entre un AFD y un AFN

● Sorprendentemente, para cualquier AFN hay un AFD que


acepta el mismo lenguaje.
● La prueba es la construcción del subconjunto.
● El número de estados del AFD puede ser exponencial en
el número de estados del AFN.
● Por lo tanto, los AFN aceptan exactamente los leguajes
regulares.

33
Construcción de subconjuntos

● Dado un AFN con el conjunto de estados Q, el alfabeto Σ,


la función de transición δN, el estado inicial q0, y el
conjunto de estados finales F, se construye el AFD
equivalente con:
○ Estados 2Q (Conjunto de subconjuntos de Q).
○ Entradas Σ.
○ Estado inicial {q0}.
○ Estados finales = todos aquellos miembros de F.

34
Construcción de subconjuntos

● La función de transición δD está definida por:

δD({q1,…,qk}, a) es la union para todo i = 1,…,k de δN(qi, a).

● Ejemplo: Construir el AFD del AFN del tablero de ajedrez.

35
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4}

3 2,6 5 {5}

4 2,8 1,5,7
5 2,4,6,8 1,3,7,9
6 2,8 3,5,9
7 4,8 5
8 4,6 5,7,9
* 9 6,8 5

36
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}

3 2,6 5 {5}

4 2,8 1,5,7 {2,4,6,8}

5 2,4,6,8 1,3,7,9 {1,3,5,7}

6 2,8 3,5,9
7 4,8 5
8 4,6 5,7,9
* 9 6,8 5

37
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}

3 2,6 5 {5} {2,4,6,8} {1,3,7,9}

4 2,8 1,5,7 {2,4,6,8}

5 2,4,6,8 1,3,7,9 {1,3,5,7}

6 2,8 3,5,9 * {1,3,7,9}

7 4,8 5
8 4,6 5,7,9
* 9 6,8 5

38
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}

3 2,6 5 {5} {2,4,6,8} {1,3,7,9}

4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}

5 2,4,6,8 1,3,7,9 {1,3,5,7}

6 2,8 3,5,9 * {1,3,7,9}


7 4,8 5 * {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5

39
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}

3 2,6 5 {5} {2,4,6,8} {1,3,7,9}

4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}

5 2,4,6,8 1,3,7,9 {1,3,5,7} {2,4,6,8} {1,3,5,7,9}

6 2,8 3,5,9 * {1,3,7,9}

7 4,8 5 * {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5

40
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}

3 2,6 5 {5} {2,4,6,8} {1,3,7,9}

4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}

5 2,4,6,8 1,3,7,9 {1,3,5,7} {2,4,6,8} {1,3,5,7,9}

6 2,8 3,5,9 * {1,3,7,9} {2,4,6,8} {5}

7 4,8 5 * {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5

41
Ejemplo: Construcción de subconjuntos
r b
r b
1 2,4 5 {1} {2,4} {5}

2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}

3 2,6 5 {5} {2,4,6,8} {1,3,7,9}

4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}

5 2,4,6,8 1,3,7,9 {1,3,5,7} {2,4,6,8} {1,3,5,7,9}

6 2,8 3,5,9 * {1,3,7,9} {2,4,6,8} {5}

7 4,8 5 * {1,3,5,7,9} {2,4,6,8} {1,3,5,7,9}


8 4,6 5,7,9
* 9 6,8 5

42
Ejemplo: AFD resultante
44

También podría gustarte