Está en la página 1de 54

Autómatas Finitos Deterministas

José L. Ramı́rez
Departamento de Matemáticas
Universidad Nacional de Colombia

Introducción a la Teorı́a de la Computación – UN


Feb - 2021
Semana 3
El Problema del dispensador
de Naranjas
El Problema del dispensador
de Naranjas

I ¿Cómo decidir cuando el dispensador hace entrega del jugo?


El Problema del dispensador
de Naranjas

I ¿Cómo decidir cuando el dispensador hace entrega del jugo?


I Cada jugo vale $ 2500.
El Problema del dispensador
de Naranjas

I ¿Cómo decidir cuando el dispensador hace entrega del jugo?


I Cada jugo vale $ 2500.
I La maquina recibe sólo monedas de $ 500 y $ 1000.
El Problema del dispensador
de Naranjas

I ¿Cómo decidir cuando el dispensador hace entrega del jugo?


I Cada jugo vale $ 2500.
I La maquina recibe sólo monedas de $ 500 y $ 1000.
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
o_0
I Botón para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

Inicio
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

Q
Inicio 500
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

Q Q
Inicio 500 1000
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

M
Q Q
Inicio 500 1000
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

M
Q Q
Inicio 500 1000 1500 2000 2500
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

M
Q Q Q Q Q
Inicio 5 10 15 20 25
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

B
M
Q Q Q Q Q
Inicio 5 10 15 20 25
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

M M M M M

Q Q Q Q Q

O
I 5 10 15 20 25 30
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.

M M M M M

Q Q Q Q Q
I 5 10 15 20 25 30

B
El Problema del dispensador de Naranjas
I $ 500 ! Q, $ 1000 ! M .
I Boton para reclamar el jugo ! B.
I ⌃ = {Q, M, D, B}.
X

M M M M M
B

Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

B
B

M M M M M
B

Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.
QBBQM
5
I q
SKIM EEEx
g to
2
B

M M M M M
B

Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.
QBBQM
B

M M M M M
B

Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.

x
QBBQM
B

M M M M M
B

Foppa
Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.
MMBBBBQ
r
B

M M M M M
B

Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.
MMBBBBQ
B

M M M M M
B

Q Q Q Q Q
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.
i
MMBBBBQ
B

M M M M M
B

Q Q Q Q Q

O OO
I 5 10 15 20 25 30

B B B B

I Los autómatas finitos son modelos de máquinas abstractas


que procesan cadenas de entrada, leyendo un sı́mbolo a la vez;
después de leer toda la cadena decide si la acepta o rechaza.

Il
q 7
pg
O
to
Tema 2

Autómatas Finitos Deterministas

0
Autómatas Finitos No Deterministas
EEE
0

To
Lenguajes Regulares
Otros Modelos
AFD
Un autómata finito determinista (AFD) M es una quintupla
M = (⌃, Q, q0 , F, ), donde:
I ⌃ es un alfabeto llamado alfabeto de cinta. Todas las
cadenas que procesa M pertenecen a ⌃⇤ .
AFD
Un autómata finito determinista (AFD) M es una quintupla
M = (⌃, Q, q0 , F, ), donde:
I ⌃ es un alfabeto llamado alfabeto de cinta. Todas las
cadenas que procesa M pertenecen a ⌃⇤ .
I Q = {q0 , q1 , . . . , qn } es un conjunto de estados internos
del autómata.
AFD

i
Un autómata finito determinista (AFD) M es una quintupla
M = (⌃, Q, q0 , F, ), donde:
I ⌃ es un alfabeto llamado alfabeto de cinta. Todas las
cadenas que procesa M pertenecen a ⌃⇤ .
I Q = {q0 , q1 , . . . , qn } es un conjunto de estados internos
del autómata.
I q0 2 Q es el estado inicial.
O
AFD
Un autómata finito determinista (AFD) M es una quintupla
M = (⌃, Q, q0 , F, ), donde:
I ⌃ es un alfabeto llamado alfabeto de cinta. Todas las
cadenas que procesa M pertenecen a ⌃⇤ .
I Q = {q0 , q1 , . . . , qn } es un conjunto de estados internos
del autómata.
I q0 2 Q es el estado inicial.
I F ✓ Q es un conjunto de estados finales o de aceptación,

8
F 6= ;.
AFD
I
Un autómata finito determinista (AFD) M es una quintupla
M = (⌃, Q, q0 , F, ), donde:
I ⌃ es un alfabeto llamado alfabeto de cinta. Todas las
cadenas que procesa M pertenecen a ⌃⇤ .
I Q = {q0 , q1 , . . . , qn } es un conjunto de estados internos
del autómata.
I q0 2 Q es el estado inicial.
I F ✓ Q es un conjunto de estados finales o de aceptación,
F 6= ;.
F tiene al menus µ estado
I La función de transición del autómata

:Q⇥⌃ !Q
(q, a) 7 ! (q, a)
Ejemplo
Considere autómata M = (⌃, Q, q0 , F, ), donde ⌃ = {0, 1},

0
Q = {q0 , q1 , q2 }, F = {q2 } y está definida tabularmente por:

0 1

814,11 91 q0 q0
I
q1 8191,11 92
q1 q1 q2
q2 q2 q2 8192,01 92
Procesamiento de la cadena de entrada w = 10100 ;

O
rojasa
e
to
cow II
II k 4.1
Ejemplo
Considere autómata M = (⌃, Q, q0 , F, ), donde ⌃ = {0, 1},
Q = {q0 , q1 , q2 }, F = {q2 } y está definida tabularmente por:

0 1
q0 q0 q1
q1 q1 q2
q2 q2 q2

Procesamiento de la cadena de entrada w = 01000 ;

motto
O

o
Paso Computacional
Cadena Vacı́a
I La cadena se procesa completamente ya que la función está
definida para toda pareja (q, a) 2 Q ⇥ ⌃.
I La cadena se procesa completamente ya que la función está
definida para toda pareja (q, a) 2 Q ⇥ ⌃.

El lenguaje aceptado por el autómata M, el cual se denota


por L(M), es el conjunto de todas las cadenas w de ⌃⇤ tal que
M termina el procesamiento de w en un estado de aceptación.
M = (⌃, Q, q0 , F, )
Diagrama de transición de un autómata:
I Grafo etiquetado y dirigido con |Q| vértices.
M = (⌃, Q, q0 , F, )
Diagrama de transición de un autómata:
I Grafo etiquetado y dirigido con |Q| vértices.
I Cada uno de los vértices del grafo esta etiquetado con cada
uno de los estados de Q.
M = (⌃, Q, q0 , F, )
Diagrama de transición de un autómata:
I Grafo etiquetado y dirigido con |Q| vértices.
I Cada uno de los vértices del grafo esta etiquetado con cada
uno de los estados de Q.
q

O
I Si q 2 Q este se representa por:
M = (⌃, Q, q0 , F, )
Diagrama de transición de un autómata:
I Grafo etiquetado y dirigido con |Q| vértices.
I Cada uno de los vértices del grafo esta etiquetado con cada
uno de los estados de Q.
q
I Si q 2 Q este se representa por:

q
I Si q 2 F este se representa por:
M = (⌃, Q, q0 , F, )
Diagrama de transición de un autómata:
I Grafo etiquetado y dirigido con |Q| vértices.
I Cada uno de los vértices del grafo esta etiquetado con cada
uno de los estados de Q.
q
I Si q 2 Q este se representa por:

q
I Si q 2 F este se representa por:

q0
I El estado inicial q0 se representa como:
M = (⌃, Q, q0 , F, )
Diagrama de transición de un autómata:
I Grafo etiquetado y dirigido con |Q| vértices.
I Cada uno de los vértices del grafo esta etiquetado con cada
uno de los estados de Q.
q
I Si q 2 Q este se representa por:

q
I Si q 2 F este se representa por:

q0
I El estado inicial q0 se representa como:
a
q q0
I Si (q, a) = q 0 se representa como:
ai 2
Una cadena w es aceptada por un autómata M si y sólo si existe
una trayectoria en el diagrama de transición del autómata M
etiquetada con los sı́mbolos de w que comienza en el vértice q0 y
termina en un estado de aceptación.
Una cadena w es aceptada por un autómata M si y sólo si existe
una trayectoria en el diagrama de transición del autómata M
etiquetada con los sı́mbolos de w que comienza en el vértice q0 y
termina en un estado de aceptación.
Ejemplo
Considere autómata M = (⌃, Q, q0 , F, ), donde ⌃ = {0, 1},
Q = {q0 , q1 , q2 }, F = {q2 } y está definida tabularmente por:

0 1
I
q0 q0 q1
q1 q1 q2
q2 q2 q2

0, 1

Link
0 0

q0
1
q1
1
q2
iii Is
Una cadena w es aceptada por un autómata M si y sólo si existe
una trayectoria en el diagrama de transición del autómata M
etiquetada con los sı́mbolos de w que comienza en el vértice q0 y
termina en un estado de aceptación.
Ejemplo
Considere autómata M = (⌃, Q, q0 , F, ), donde ⌃ = {0, 1},
Q = {q0 , q1 , q2 }, F = {q2 } y está definida tabularmente por:

0 1
q0 q0 q1
q1 q1 q2
q2 q2 q2

0 0 0, 1

1 1
q0 q1 q2

¿Cuál es el lenguaje aceptado por M?


Los arcos no dibujadas explı́citamente conducen a un estado limbo
de no-aceptación.
b b
a
b b b
q0 q1 q2
a
a b
a q0 q1 q2
a, b
a

q3
Los arcos no dibujadas explı́citamente conducen a un estado limbo
de no-aceptación.

M M
b b
a
b b b
q0 q1 q2
a
a b
a q0 q1 q2
a, b
e a

q3

I Dado un lenguaje regular L diseñar un autómata finito M que


acepte o reconozca a L, es decir, tal que L(M ) = L.
I Dado un autómata M determinar el lenguaje aceptado por M .

2 1 b v ve
3
w
L M we
y Maes par
¡Ejemplos!
Ejemplo
Describa el lenguaje aceptado por el autómata M sobre el alfabeto
⌃ = {0, 1} que se muestra en el siguiente diagrama:
M
1 0
0

UM 0011 0
0
0
q0 q1 q2

week If'y
020,1
we 1010
Ejemplo
Diseñe un AFD que acepte el lenguaje de todas las cadenas que
contienen la subcadena aa, sobre el alfabeto ⌃ = {a, b, c}.

Akc
0k

it is a sea

me
Ejemplo
Diseñe un AFD que acepte el lenguaje de todas las cadenas que
contienen la subcadena aa, sobre el alfabeto ⌃ = {a, b, c}.
b, c a, b, c
a
a
q0 q1 q2

b, c
Ejemplo
Diseñe un AFD que acepte el lenguaje L2 , donde
L = {w 2 ⌃⇤ : w = 0u0, u 2 ⌃⇤ }.
Ejemplo
Diseñe un AFD que acepte el lenguaje L2 , donde
L = {w 2 ⌃⇤ : w = 0u0, u 2 ⌃⇤ }.
1 1 0
0 0
0 0
q0 q1 q2 q3 q4

1 1

L(M) = {0u00v0 : u, v 2 ⌃⇤ }
Ejercicio
Diseñe un autómata que acepte todas las cadenas binarias tal que
el número de 1’s es múltiplo de 4. Es decir
L(M) = {w 2 {0, 1}⇤ : |w|1 ⌘ 0 mod 4}.
Próxima Sesión:
Autómatas finitos
no-deterministas.

También podría gustarte