Está en la página 1de 53

PERODO UNO SEMANA 2 - DIA UNO

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Objetivos

Lenguaje formal (continuacin)


Alfabeto
Cadena
Elementos
Autmata
Autmata finito
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Repaso de conceptos
Actividad Verdadero o falso

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguaje y Autmata finito


Ejercicio en grupo

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos


Solucin

En matemticas, particularmente en matemtica clsica


elemental, un nmero primo es aquel nmero natural mayor
que uno que admite nicamente dos divisores diferentes: el
mismo nmero y el 1.
http://es.calcuworld.com/calculadoras-matematicas/calculadora-binaria/
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Lenguajes regulares y autmatas finitos


Autmatas nitos

lenguajes regulares son aquellos que pueden describirse mediante un autmata nito.
Despus de ver un ejemplo deniremos formalmente los autmatas nitos.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Un autmata nito tiene un conjunto de estados y su control
pasa de un estado a otro en respuesta a las entradas externas.
Una de las diferencias fundamentales entre las clases de
autmatas nitos es si dicho control es determinista, lo que
quiere decir que el autmata no puede encontrarse en ms de un
estado a un mismo tiempo, o no determinista, lo que signica
que s puede estar en varios estados a la vez.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Ejercicio ejemplo

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Ejemplo
Reglas bsicas
Tenemos tres participantes:
El cliente
La tienda
El banco
Para simplicar, suponemos que slo
existe un archivo de dinero electrnico.
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
El cliente puede decidir transferir este archivo a la tienda, la cual
lo reenviar al banco (es decir, solicita al banco que emita un
nuevo archivo que reeje que el dinero pertenece a la tienda en
lugar de al cliente) y suministra los bienes al cliente.
Adems, el cliente tiene la opcin de cancelar el archivo; es decir,
el cliente puede pedir al banco que devuelva el dinero a su
cuenta, anulando la posibilidad de gastarlo.
La interaccin entre los tres participantes se limita por tanto a
cinco sucesos:
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
El protocolo
Los tres participantes tienen que disear sus comportamientos muy
cuidadosamente, o de lo contrario pueden producirse errores.
En nuestro ejemplo, podemos hacer la suposicin de que no es posible conar
en que el cliente acte de manera responsable.
En concreto, el cliente puede intentar copiar el archivo de dinero y emplearlo
para pagar varias veces, o puede pagar y luego cancelar el pago, obteniendo as
los bienes gratuitamente.
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
El banco debe comportarse de manera responsable, o no sera un banco.
En concreto, debe garantizar que dos tiendas no puedan liberar el mismo
archivo de dinero y no debe permitir que el mismo dinero sea a la vez
cancelado por el cliente y liberado por una tienda.

La tienda tambin tiene que ser cuidadosa.


En concreto, no debe suministrar los bienes hasta asegurarse de que ha
recibido dinero electrnico vlido.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Los protocolos de este tipo pueden representarse mediante un
autmata nito.
Cada estado representa una situacin en la que puede encontrarse
uno de los participantes.
Es decir, el estado recuerda qu sucesos importantes han ocurrido
y qu sucesos todava no han tenido lugar.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Las transiciones entre estados se producen cuando tiene lugar uno de
los cinco sucesos descritos anteriormente.
Supondremos que estos sucesos son externos al autmata que
representa a los tres participantes, aunque cada participante sea
responsable de iniciar uno o ms de los sucesos.

Lo importante en este problema es qu secuencias pueden ocurrir y


no quin las inicia.
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
La Figura representa los tres
participantes mediante
autmatas.
En este diagrama, slo se
muestran los sucesos que
afectan a un participante.
Por ejemplo, la accin pagar
slo afecta al cliente y a la
tienda.

El banco no sabe que el cliente


ha enviado el dinero a la
tienda; slo descubre este
hecho cuando la tienda ejecuta
la accin librar.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Examinemos en primer lugar el autmata (c) correspondiente al
banco.
El estado inicial es el estado 1, que representa la situacin en la que
el banco ha emitido el archivo de dinero electrnico en cuestin
pero no se ha solicitado que sea liberado o cancelado.
Si el cliente enva al banco una solicitud cancelar, entonces el banco
devuelve el dinero a la cuenta del cliente y pasa al estado 2.
Este estado representa la situacin en la que el pago ha sido
cancelado.
El banco, puesto que es responsable, no saldr del estado 2 una vez
que ha entrado en l, ya que no debe permitir que el mismo pago
sea cancelado otra vez o gastado por el cliente.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Alternativamente, cuando se encuentra en el estado 1, el banco
puede recibir una solicitud de librar procedente de la tienda.

En ese caso, pasa al estado 3 y enva rpidamente a la tienda un


mensaje transferir, con un nuevo archivo de dinero electrnico que
ahora pertenece a la tienda.
Despus de enviar el mensaje transferir, el banco pasa al estado 4.
En dicho estado, no aceptar solicitudes cancelar ni librar ni
realizar ninguna otra accin referente a este archivo de dinero
electrnico en concreto.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Consideremos ahora la Figura (a), el autmata que representa las
acciones de la tienda.

Mientras que el banco siempre hace lo correcto, el sistema de la


tienda tiene algunos defectos.
Imaginemos que las operaciones de suministro y nancieras se
hacen mediante procesos separados, de modo que existe la
oportunidad para que la accin de suministro se lleve a cabo antes,
despus o durante la de libramiento del dinero electrnico.
Esta poltica permite a la tienda llegar a una situacin en la que ya
haya suministrado los bienes y se descubra que el dinero no es
vlido.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
La tienda comienza en el estado a. Cuando el cliente pide los bienes
mediante la accin pagar, la tienda pasa al estado b.
En este estado, la tienda inicia los procesos de suministro y
libramiento.
Si se suministran los bienes en primer lugar, la tienda entra en el
estado c, donde todava tiene que librar el dinero del banco y recibir
la transferencia de un archivo de dinero equivalente del banco.
Alternativamente, la tienda puede enviar primero el mensaje librar, pasando al estado d. A partir del estado d, la
tienda puede a continuacin realizar el suministro, pasando al estado e, o puede recibir la transferencia del
dinero procedente del banco, pasando al estado f. A partir del estado f, la tienda realizar el suministro, pasando
al estado g, donde la transicin se completa y ya no puede ocurrir nada ms.
En el estado e, la tienda est a la espera de la transferencia del banco. Lamentablemente, los bienes ya han sido
enviados y, si la transferencia no se produce nunca,la tienda habr tenido mala suerte.
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos
Observemos por ltimo el autmata correspondiente al cliente, la
Figura (b).
Este autmata slo tiene un estado, el cual reeja el hecho de que
el cliente puede hacer cualquier cosa.
El cliente puede realizar las acciones pagar y cancelar cualquier
nmero de veces, en cualquier orden y despus de cada accin
permanece en su nico estado.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmatas finitos JFLAP - video

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

PERODO UNO SEMANA 2 - DIA DOS

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Objetivos

Autnomos Finitos (Continuacin)


Autnomos Finitos Determinista (AFD)
Autnomos Finitos no Determinista

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Es aquel que slo puede estar en un nico estado despus
de leer cualquier secuencia de entradas.
El trmino determinista hace referencia al hecho de que
para cada entrada slo existe uno y slo un estado al que el
autmata puede hacer la transicin a partir de su estado
actual.
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Por el contrario, un autmata nito no determinista,
puede estar en varios estados a la vez.
El trmino autmata nito hace referencia a la variedad
determinista, aunque normalmente utilizaremos el trmino
determinista o la abreviatura AFD.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Un autmata nito determinista consta de:
1. Un conjunto nito de estados, a menudo designado
como Q.
2. Un conjunto nito de smbolos de entrada, a menudo
designado como .

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


3. Una funcin de transicin que toma como argumentos un estado y un
smbolo de entrada y devuelve un estado.
La funcin de transicin se designa habitualmente como pero la
representaremos como f .
En nuestra representacin grca informal del autmata, f se ha representa
mediante arcos entre los estados y las etiquetas sobre los arcos.
Si q es un estado y a es un smbolo de entrada, entonces f (q,a) es el estado p
tal que existe un arco etiquetado a que va desde q hasta p.2

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


4. Un estado inicial, uno de los estados de Q.
5. Un conjunto de estados nales o de aceptacin F.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


A menudo haremos referencia a un autmata nito
determinista mediante su acrnimo: AFD. La representacin
ms sucinta de un AFD consiste en un listado de los cinco
componentes anteriores.
Normalmente, en las demostraciones, deniremos un AFD
utilizando la notacin de quntupla siguiente:
AFD=(Q,,f ,q0,F)
Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


AFD=(Q, , f ,q0, {F})
Q es su conjunto de estados,
son los smbolos de entrada,
f es la funcin de transicin,
q0 es el estado inicial y
{F} es el conjunto de estados nales.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Ejemplo 1
1. Se desea disear un dispositivo que, dada una cadena formada por
nmeros binarios, encuentre las ocurrencias de la palabra clave 1011 y
sirva de base para un recuento de sus apariciones.
Ntese que si la cadena fuera, por ejemplo, 0101011011011, se
detectara dos ocurrencias de la palabra clave (subrayadas), no considerando
el 1 de la sptima posicin como inicio de otra ocurrencia.
Se pide construir el Autmata Finito Determinista correspondiente.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Desarrollo del ejercicio con participacin de la clase

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Solucin:

El objetivo es detectar la palabra clave 1011, tantas veces como aparezca en


la secuencia de entrada de nmeros binarios.
Por lo tanto, el autmata finito deber llegar a un estado final cada vez que
detecte una ocurrencia de dicha palabra clave, por lo que no puede
quedarse en el estado final tras encontrar la primera secuencia 1011, si sigue
habiendo nmeros detrs.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Todo AFD est compuesto por una quntupla: AFD=(, Q, f, q0, {F})
El alfabeto de entrada , en este caso es sencillo, pues slo contiene los dgitos 0 y 1
que forman los binarios: AFD=({0,1}, )
El conjunto de estados Q se ir definiendo ms adelante en funcin de las transiciones
necesarias, pero al menos necesitaremos un estado inicial, p, y un estado final, t, que
ya podemos aadir al conjunto: AFD=({0,1}, {p, t, },)
La funcin de transicin, f, la representaremos ms adelante mediante un diagrama
de transiciones: AFD=({0,1}, {p, t, }, f, )
El estado inicial ya est definido, denominndose p: AFD=({0,1}, {p, t, }, f, p, )
Por ltimo, el conjunto de estados finales se completar al final, pero al menos
podemos incluir el que ya hemos definido, llamado t: AFD=({0,1}, {p, t, }, f, p, {t, })

AFD=(Q,,f,q0,F)
Q es su conjunto de estados,
son los smbolos de entrada,
f es la funcin de transicin,
q0 es el estado inicial y
{F} es el conjunto de estados
nales.

Por lo tanto, nos falta definir el diagrama de transiciones que representa a f, que tambin
nos permitir completar el conjunto de estados y de estados finales.

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


AFD=(Q,, ,q0,F)

Dado que la palabra clave est formada por 4 smbolos, que deben aparecer siempre de
forma consecutiva, necesitaremos un estado diferente para reconocer cada subsecuencia
de smbolos ledos de la cadena.

Es decir, tendremos un:


estado (q) para determinar que se ha ledo la subsecuencia 1,
otro estado (r) para indicar la lectura de la subsecuencia 10,
Un estado ms (s) para representar el reconocimiento de la subsecuencia con 3
elementos 101,
y por ltimo se alcanza el estado final (t) cuando se ha ledo la secuencia completa
1011 de forma consecutiva.

Q es su conjunto de estados,
son los smbolos de entrada,
f es la funcin de transicin,
q0 es el estado inicial y
{F} es el conjunto de estados
nales.

As, de momento, nos quedara el siguiente diagrama de transiciones:


Estado de Inicio

Estados

Transicin
Estado final

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


AFD=(Q,, ,q0,F)

Pero como se trata de un AFD hay que definir una transicin desde cada estado con cada
uno de los smbolos del alfabeto (1,0).
Tambin es necesario aadir dichas transiciones para controlar las situaciones de error,
en las que la secuencia inicialmente sea igual a la palabra clave, pero llegado un
determinado smbolo vare (1011 variacin 1001), y haya que retroceder hasta el estado
adecuado, que no siempre ser el inicio. As, aadiendo desde cada estado la transicin
con el smbolo que faltaba, nos queda:

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Q es su conjunto de estados,
son los smbolos de entrada,
f es la funcin de transicin,
q0 es el estado inicial y
{F} es el conjunto de estados
nales.

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista


Por ltimo, tambin hay que aadir transiciones desde el estado final, t, porque el autmata
debe reconocer varias palabras clave 1011 y no slo la primera.
As, si se lee un 0 se transita al estado p, a esperar que aparezca un 1 que inicia la palabra clave.
Pero si se lee un 1, se puede transitar directamente al estado q que se representa la lectura del
primer smbolo de la palabra clave.
As, finalmente, la defincin formal del autmata finito es:
AFD=({0,1},{p,q,r,s,t},f,p,{t}), siendo f:

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista

Verificacin de ejercicio con JFLAP

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

Autmata Finito Determinista

Escuela de Ingeniera en Computacin (EIC)/Teora de la Computacin

Lic. Miguel Angel Lpez Rodrguez - miguel.lopez@udb.edu.sv

También podría gustarte