Sunteți pe pagina 1din 68

Teora Autmatas y

Lenguajes Formales.
Dr. Vctor Heughes Escobar Jeria.
Primer Semestre 2010
e-mail: victorescobar@yahoo.com
victor.escobar14@docentes.inacap.cl

Descripcin de la asignatura

Esta asignatura proveer al alumno nociones de los


fundamentos de la ciencia de la computacin, adems de
los elementos necesarios para la elaboracin de un
compilador

OBJETIVOS
Conocer los fundamentos relacionados con la teora de
la computabilidad.
Conocer los fundamentos tericos y prcticos bsicos de
compiladores

Contenidos
1.- Fundamentos matemticos
- Alfabetos, palabras y lenguajes.
- Grafos y rboles.
- Induccin matemtica.
- Conjuntos y relaciones.
2.- Autmatas finitos:
- Autmatas finitos determinsticos.
- Autmatas finitos no determinsticos.
- Autmatas finitos con transiciones en vaco.
- Expresiones regulares.
- Autmatas que escriben
3.- Propiedades de los conjuntos regulares:
- Lema de bombeo para conjuntos regulares.
- Propiedades de clausura.
- Algoritmos de decisin.
- Teorema de Myhill-Nerode.
- Minimizacin de autmatas finitos
4

Contenidos
4.- Gramticas libres de contexto:
- Definiciones.
- rboles de derivacin.
- Simplificacin de gramticas.
- Formas normales.
- Lenguajes inherentemente ambiguos
5.- Autmatas apiladores:
- Definiciones.
- Relacin con los lenguajes libres de contexto.
6.- Propiedades de los lenguajes libres de contexto:
- Lema de bombeo para lenguajes libres de contexto.
- Propiedades de clausura.
- Algoritmos de decisin.

Contenidos

7.- Mquinas de Turing:


- Modelo de la mquina de Turing.
- Lenguajes y funciones computables.
- Tcnicas para la construccin de mquinas de Turing.
- Extensiones al modelo de las mquinas de Turing.
-Hiptesis de Church.

8.- Problemas indecidibles:


- Problemas.
- Propiedades de los lenguajes recursivos y enumerables
recursivamente.
- La mquina de Turing universal.
9.- Principios de compiladores:
- Ejemplo de un diseo de compilador de una pasada.
- Anlisis lxico y sintctico.
- Comprobacin de tipos.
- Optimacin de cdigo.
- Compiladores avanzados para multiprocesadores
6

Evaluacin

Evaluaciones

Fecha

Prueba 1

14/May

20

Prueba 2

19/Jul

30

Controles

15

Trabajos

35

Teora Autmatas y Lenguajes


Formales: Introduccin

Dr. Vctor Heughes Escobar Jeria.


Primer Semestre 2010
e-mail: victorescobar@yahoo.com
victor.escobar14@docentes.inacap.cl

Introduccin.
El avance de las matemticas permite la utilizacin de nuevas
metodologas para la representacin y manejo de la informacin.
Por otro lado, aparece el intento de los matemticos y cientficos
para obtener un procedimiento general para poder resolver cualquier
problema (matemtico) claramente formulado. Es lo que se podra
llamar El problema de la computacin terica

Introduccin.
El avance de la tecnologa y de las matemticas, y ms en concreto
de la teora de conjuntos y de la lgica, permiten plantearse aspectos
de la computacin en 3 caminos:
a) Computacin terica. Autmatas, Funciones Recursivas, ...
b) Ordenadores
lenguajes, ....

digitales.

Nuevas

tecnologas,

nuevos

c) Intentos de modelizar el cerebro biolgico


1. Redes Neuronales (intentan modelizar el
"procesador")
2. Conjuntos y Lgica Difusa (representar y manejar
la informacin)
10

Introduccin.
Teora de Autmatas.
Trata del estudio de mquinas de computacin
abstractas.
Teora de la Computacin.
Trata del estudio de la computabilidad y de la
complejidad.
Lenguajes y Gramticas.
Trata del estudio y formalizacin de los
lenguajes.

11

Introduccin.
Diferencia entre los lenguajes naturales (LN) y los lenguajes de
programacin (LP), los LP tienen unas reglas de sintaxis y de
semntica mucho ms rgidas, lo que les hace manejables en los
computadores.

En los LN se trata pues de "explicar la estructura del lenguaje,


y no delimitarla. Esto obliga a reglas muy complejas y que se
quedan obsoletas rpidamente

12

Introduccin. Historia (I)

En 1930s, A. Turing desarroll una mquina abstracta


denominada Mquina de Turing para el estudio de la
computabilidad.

En 1940s y 1950s, se desarrollan unas mquinas


simples, en cuanto su funcionamiento, que fueron
conocidas como autmatas finitos, para modelar el
funcionamiento del cerebro.

Tambin en los 1950s, N. Chomsky comienza el estudio


formal de las gramticas (generadoras de lenguajes).

13

Introduccin. Historia (II)


En

1969, S. Cook extiende el estudio de


Tuning. Cook separa aquellos problemas que
pueden ser solucionados de aquellos que en
principio pueden ser solucionados pero que en la
prctica toman demasiados recursos.

Autmatas

finitos y ciertas clases de gramticas


formales son usadas en el diseo y construccin
de software.

La

Mquina de Turing ayuda a comprender que es


lo que podemos esperar de nuestro software.

14

Por qu estudiar TALF?


Autmatas

Finitos son modelos tiles para


muchos elementos hardware y software:

15

Software para disear y chequear la conducta de


circuitos digitales.
El analizador lxico de un compilador.
Software para escanear grandes volmenes de texto
para encontrar patrones.
Software para verificar sistemas que tengan un nmero
finito de estados, tales como protocolos de
comunicacin o de intercambio seguro de informacin.

Por qu estudiar TALF?


Autmatas

son esenciales para el estudio


de los lmites de la computacin:

16

Qu puede hacer un computador?

Qu puede hacer un computador eficientemente?

Por qu estudiar TALF?


Los

lenguajes nos permiten comunicarnos


con la mquina, parte de lo que puede hacer
la mquina depende del poder descriptivo del
lenguaje.

17

Compiladores.
Traductores.
Diseo de lenguajes de alto nivel.

Definicin informal de autmata

18

Son sistemas que en todo momento se encuentran


en un conjunto finito de estados.
El propsito de un estado es recordar la historia del
sistema.
Puesto que el nmero de estados es finito, el
sistema debe ser diseado para recordar aquello
que es importante y olvidar lo que no.
La ventaja de tener un nmero finito de estados es
que el sistema podr ser implementado con un fijo
conjunto de recursos.

Ejemplo de Autmata Finito

19

Sistema: Interruptor.
El sistema recuerda si est
conectado (ON) o
desconectado (OFF).
El usuario lo presiona.
Si est en OFF y es
presionado pasa al estado
ON.
Si est en ON y es
presionado pasa al estado
OFF.

Presin
Comienz
off
o

on

Presin

Gramticas Formales
Gramtica regulares.
Gramticas independientes de contexto.
Gramticas sensibles al contexto.
Gramtica sin restricciones o de
estructura de frase.

20

Definicin informal de Gramtica

Es el mecanismo empleado para establecer la estructura


de un lenguaje, es decir las sentencias que lo forman.
Consiste de un conjunto de reglas sintcticas que
establecen la forma en la que se pueden combinar los
smbolos del alfabeto:

21

ORACION es un SUJETO y un PREDICADO.


SUJETO es una FRASE NOMINAL.
FRASE NOMINAL es un GRUPO NOMINAL y un CALIFICATIVO que
puede o no estar.
GRUPO NOMINAL es un ARTICULO que puede no estar y un
NOMBRE.
CALIFICATIVO es un ADJETIVO o una CONJUNCIN y una ORACION.

Tipos de Gramticas

N. Chomsky clasifica las gramticas en cuatro tipos:

Gramticas sin restricciones o gramticas de


estructura de frases (Tipo 0).
Gramticas sensibles al contexto (Tipo 1).
Gramticas independientes de contexto (Tipo 2).
Gramticas regulares (Tipo 3).

Tipo 0

22

Tipo 1

Tipo 2

Tipo 3

Tipos de Lenguajes

Conforme a la clasificacin de N. Chomsky, los


lenguajes se clasifican en cuatro tipos:

Lenguajes
Lenguajes
1).
Lenguajes
Lenguajes

sin restricciones (Tipo 0).


sensibles (o dependientes) al contexto (Tipo
independientes de contexto (Tipo 2).
regulares (Tipo 3).

Tipo 0

23

Tipo 1

Tipo 2

Tipo 3

Teora de Autmatas
- Lenguajes Formales
(Mquinas abstractas - Gramticas Formales)
equivale

Gramtica

Mquina

describe

reconoce

genera

genera

Lenguajes

24

Teora de Autmatas
Lenguajes Formales
(Mquinas abstractas - Gramticas Formales)

25

Gramticas

Lenguajes

Mquinas

Sin restricciones o
de Tipo 0

Sin restricciones o
de Tipo 0

Mquina de Turing

Sensible al
contexto o de Tipo
1

Sensible al
contexto o de Tipo
1

Autmata
linealmente
acotado

Libre de contexto o
de Tipo 2

Libre de contexto o
de Tipo 2

Autmata a pila

Regular o de Tipo
3

Regular o de Tipo
3

Autmata Finito

Teora de autmata y
Lenguajes Formales.
Proceso de traduccin que realiza los compiladores.
Mdulo
analizador
lxico

Transforma el programa fuente en una secuencia de


tokens

- Identificacin de
tokens
como bloques u objetos
individuales contenidos
en el diccionarios del
lenguaje.

Indicadores,
palabras
claves,
operadores, ...

Mdulo
analizador
sintctico

- Identificacin de
tokens
que forman parte de
cada instruccin y ver
que esta correctamente
escrito
Mdulo
generador
de cdigo

Los dos primeros pasos requieren imperiosamente usar reglas


gramaticales claramente definidas en las que apoyarse para la
automatizacin del proceso de traduccin. Generalmente se utilizan en estas
tares, mquinas (o algoritmos) como los autmatas.
26

Y al final del curso qu?

27

Construir autmatas para modelar sistemas.


Desarrollar gramticas para generar un lenguaje
dado.
Construir mquinas para reconocer sentencias de
un determinado lenguaje.
Comprobar el tipo de un lenguaje dado.

Teora Autmatas y Lenguajes


Formales:
Fundamentos Matemticos
Dr. Vctor Heughes Escobar Jeria.
Primer Semestre 2010
e-mail: victorescobar@yahoo.com
victor.escobar14@docentes.inacap.cl

Fundamentos Matemticos.
Repasar brevemente algunas nociones y notaciones que
sern necesarias a lo largo de la asignatura.
Uniformizar la notacin, que varia bastante.

29

Fundamentos Matemticos.

Conjuntos

El fundamento ms importante para el estudio de los lenguajes y autmatas


es la Teora de Conjuntos. (Formalizar)
Los conjuntos pueden expresarse de dos maneras bsicamente:
En extensin, lo cual quiere decir que citamos explcitamente cada uno
de sus elementos, como en el conjunto {1,3, 5} que contiene exactamente
los nmeros 1, 3 y 5.
En intencin o comprensin, dando una descripcin precisa de
los elementos que forman parte del conjunto, en vez de citarlos
explcitamente. Por ejemplo, el conjunto del punto anterior puede ser visto
como {i N| impar(i), i < 6}, donde se supone que los nmeros impares
cumplen la condicin impar(i).

30

Fundamentos Matemticos. Conjuntos


Se representa a los conjuntos con letras maysculas, como en A = {2,4}.
Los conjuntos pueden contener conjuntos como elementos, como en
B = {{a}, {b, c}}.
El conjunto sin elementos (vacio) se representa por o bien por {}.
La notacin a B significa que a es elemento o est contenido en el
conjunto B; por ejemplo, {2,3} {1, {2,3},4}. Para indicar que a no est en B
se escribe a B.
El tamao de un conjunto es el nmero de elementos que contiene, y se
representa como |A| para un conjunto A. Por ejemplo, el tamao de {a, b, c} es 3,
y el tamao de es cero.

Dos conjuntos A y B son iguales, A = B, si y slo si tienen los mismos


elementos, esto es, x A ssi x B. 1 Por ejemplo, {1, {2,3}} = {{3, 2}, 1}. (el
orden de los elementos es irrelevante).
31

Fundamentos Matemticos. Conjuntos


La notacin A B significa que el conjunto A est contenido en el conjunto
B, o ms tcnicamente, que A es subconjunto de B.
Por ejemplo, el conjunto {a, c} es subconjunto de {a, b, c}, indicado
como {a, c} {a, b, c}. En otras palabras, A B cuando siempre que x A,
tenemos tambin x B.
De acuerdo con esta definicin, A A para cualquier conjunto A: todo
conjunto es subconjunto de s mismo. Un caso extremo es el conjunto
vaco, que es subconjunto de cualquier conjunto.
Para indicar que un subconjunto contiene menos elementos que otro, es decir,
que es un subconjunto propio de ste, se escribe A B. Por ejemplo, {a, c}
{a, b, c}. Claramente, A = B ssi A B y B A.
Obsrvese tambin que si A B, entonces |A| |B|, y si
A B, entonces |A| < |B|. (Diagrama de Venn)

32

Fundamentos Matemticos. Conjuntos


Diagrama de Venn: los diagramas de Venn permiten visualizar
grficamente las nociones conjuntistas y se representan mediante crculos
inscritos en un rectngulo. Los crculos corresponden a los conjuntos
dados y el rectngulo al conjunto universal.
Ejemplo:
AB

33

Fundamentos Matemticos. Conjuntos


Operaciones con conjuntos
Sean A y B conjuntos. Se definen las siguientes operaciones con los conjuntos:
Unin de conjuntos,
Interseccin de conjuntos,
Diferencia de conjuntos
Complemento de un conjunto
Potencia de un conjunto A, denotada como 2(A):
Ej. 2{1,2,3}
= {, {1}, {2}, {3}, {1, 2}, {1,3}, {2,3}, {1, 2, 3}}.
Producto Cartesiano de dos conjuntos
{1, 2} {3,4, 5} = {(1,3), (1,4), (1, 5), (2,3), (2,4), (2, 5)}

34

Fundamentos Matemticos. Conjuntos


Equivalencias de conjuntos
Leyes conmutativas
AB = BA, A B = B A, para los conjuntos A y B.
Leyes distributivas
A (B C) = (A B) (A C), A (B C) = (A B) (A C).
Leyes de De Morgan
(A B)C = AC BC , (A B)C
Doble complemento
(AC )C = A.

35

= AC BC .

Fundamentos Matemticos. Conjuntos


Relaciones .
Inverso.
Se llama inverso de una relacin R, denotado por R-1, a aquella en donde se
invierte el orden de los pares ordenados, esto es:
Por ejemplo, el inverso de la relacin {(1, 2), (2,3), (1,3)} es {(2, 1), (3, 2),
(3, 1)}.
Reflexividad
Se dice que una relacin binaria en D D es reflexiva cuando contiene todos
los pares de la forma (x, x), para x D.
Por ejemplo, si D = {1, 2, 3}, la relacin en {1, 2, 3} {1, 2, 3} con los
elementos {(2, 2), (2,3), (3,3), (1, 2), (1, 1), (1,3)} es reflexiva, pero {(2, 2),
(2,3), (1, 2), (1, 1), (1,3)} no lo es

36

Fundamentos Matemticos. Conjuntos


Simetra
Una relacin es simtrica si y slo si siempre que contiene un par (x, y)
tambin contiene (y, x).
Por ejemplo, {(2, 2), (1, 2), (1, 1), (2, 1)} es simtrica, pero {(2, 2),
(2,3), (3,3), (1, 2), (1, 1)} no lo es.

Transitividad
Una relacin es transitiva cuando siempre que contiene los pares
(x, y) y (y, z) tambin contiene (x, z).
Por ejemplo, la relacin {(2,3), (1, 2), (1, 1), (1,3)} es transitiva,
pero {(2,3), (1, 2), (1, 1)} no lo es.

37

Fundamentos Matemticos. Conjuntos


Cerradura
Cerradura reflexiva de una relacin R, se le agregan a R los pares
ordenados que sean necesarios hasta que se vuelva reflexiva.
Por ejemplo, la cerradura reflexiva de R1= {(2,3), (1, 2), (1, 1),
(1,3)} es {(2,3), (1, 2), (1, 1), (1,3), (2, 2), (3,3)}.
Cerradura simtrica de una relacin, aadiendo los pares estrictamente
necesarios para que se vuelva simtrica.
Por ejemplo, la cerradura simtrica de {(2,3), (1, 2), (1, 1), (1,3)} es {(2,3),
(1, 2), (1, 1), (1,3), (3, 2), (2, 1), (3, 1)}.
Cerradura transitiva se define de una manera similar.
Por ejemplo, la cerradura transitiva de la relacin {(1, 2), (3, 1), (2, 1)} es
{(1, 2), (3, 1), (2, 1), (1, 1), (2, 2), (3, 2)}.
38

Fundamentos Matemticos
Clculo proposicional
Manejo

lgico de enunciados.

Por

ejemplo, consideremos el conjunto de


nmeros naturales tales que, si son pares o
terminan en 7, entonces contienen algn cero
(0).
- Algunos de los nmeros son: 2307, 400, 1023

Razonamiento Lgico
(uso del Clculo proposicional)

39

Fundamentos Matemticos
Clculo proposicional
Implicacin:
Disyuncin

:AVB

Conjuncin:
Otros

A B

AB

smbolos lgicos
implicacin, negacin, etc.

Llamados
40

son:

doble

todos ellos conectivos lgicos.

Fundamentos Matemticos
Clculo proposicional
Una herramienta til para utilizar y comprender
los conectivos lgicos, son las tablas de verdad.

Por ejemplo, en la siguiente tabla de verdad se


define el comportamiento de los conectivos lgicos
de conjuncin, disyuncin, negacin e implicacin:

41

Fundamentos Matemticos. Induccin


La prueba por induccin sirve para probar que una cierta propiedad es vlida
para todos los elementos de un conjunto infinito contable.
Suponer que se quiere probar que una propiedad P es cierta para todos los
elementos de un conjunto infinito contable (C).
Inicialmente se prueba que es cierta para el primer elemento de (C), sea
c0 esto es, se verifica P (c0 ). Este paso se llama base de la induccin.
Despus se supone que la propiedad P es cierta para algn
elemento ci
de (C), y con base en esta suposicin, llamada hiptesis
de induccin, se prueba que P tambin es cierta para el siguiente elemento,
ci+1 .
Con base en los dos pasos anteriores se concluye que la propiedad P es
cierta para todos los elementos del conjunto (C)
42

Fundamentos Matemticos. Induccin


Ejemplo
Suponer que se quiere probar que todo nmero natural es menor que
el doble de s mismo, esto es, n < 2n, n N.
1.(base) Primero se comprueba para el caso del 1 se cumple, pues
1 < 2.
2.(induccin) Suponiendo que para un nmero i la propiedad se
cumple, esto es, i < 2i, Se debe comprobar que tambin se cumple para
el siguiente nmero, esto es:
i+1 < 2(i+1).
En efecto, si i < 2i, entonces i+1 < 2i+1, pero 2i+1 < 2i+2 = 2(i+1),
por lo que i + 1 < 2(i + 1), como deba probar.

43

Fundamentos Matemticos. Grafos

Fundamentos Matemticos. Grafos

Fundamentos Matemticos. Grafos

Fundamentos Matemticos. Grafos

Fundamentos Matemticos. Grafos

Fundamentos Matemticos. Conceptos


Alfabeto, cadena de caracteres
La nocin ms primitiva es la de smbolo, que es simplemente una
representacin distinguible de cualquier informacin.
Los smbolos pueden ser cualesquiera, como w, 9, #, etc.,
Un smbolo es una entidad indivisible.
Un alfabeto es un conjunto no vaco de smbolos. Ej.. alfabeto
del idioma espaol,
E={a, b, c, . . . , z}, es slo uno de tantos alfabetos posibles. En
general utilizaremos la notacin para representar un alfabeto.

49

Fundamentos Matemticos. Conceptos


Con los smbolos de un alfabeto es posible formar secuencias o cadenas de
caracteres, tales como mxzxptlk, balks, r, etc.
Las cadenas de caracteres son llamadas tambin palabras.

Un caso particular de cadena es la palabra vaca, la cual no tiene


ninguna letra.

La longitud de una palabra es la cantidad de letras que contiene,


contando las repeticiones; se denota por |w| para una palabra w.
Por ejemplo, |perro| es 5.
Varias palabras o caracteres uno a continuacin de otro, se supone que
forman una sola palabra (se concatenan). La notacin usada para denotar la
concatenacin de dos cadenas a y es a.
Por ejemplo, si w = abra y v = cada, entonces wvbra es la
palabra abracadabra.
50

Fundamentos Matemticos. Conceptos


La concatenacin de palabras es asociativa, esto es, (xy)z = x(yz), pero
NO conmutativa en el caso general.
La longitud de una concatenacin cumple la propiedad: |uv | = |u|+ |v |.
Una palabra v es subcadena de otra w cuando existen cadenas x, y posiblemente vacas- tales que xvy = w.
Por ejemplo, bora es subcadena de vbora, y es subcadena de
toda palabra.
El conjunto de todas las palabras que se pueden formar con un alfabeto
es denotado convencionalmente por *
Por ejemplo, si = {a, b}, * = {, a, aa, aaa, aaaa, . . . , b, bb,
. . . , ab, aba, abb, . . .}.
El conjunto * es infinito, pero enumerable.

51

Fundamentos Matemticos. Conceptos


Lenguajes, operaciones con lenguajes
Un lenguaje es simplemente un conjunto de palabras. Por ejemplo:
{abracadabra} es un lenguaje (de una sola palabra),
{ali, baba, y, sus, cuarenta, ladrones} es otro,
* es otro, etc.
Puesto que los lenguajes son conjuntos, se pueden efectuar con ellos
todas las operaciones de los conjuntos (unin, interseccin, diferencia, etc).
Concatenacin de lenguajes
L1L2 , como una extensin de la concatenacin de palabras:
LL = {w|w = xy, x L1 , y L2 }.

52

Fundamentos Matemticos. Conceptos


Por ejemplo, dados los lenguajes L1={ca, ma} y L2= {nta, sa}, la
concatenacin L1L2= {canta, casa, manta, masa}.
Una operacin ms complicada es la llamada estrella de Kleene o
cerradura de Kleene, en honor al matemtico norteamericano S. C. Kleene,
quien la propuso.

Definicin.- Si L es un lenguaje, L*, llamado cerradura de


Kleene de L, es el ms pequeo conjunto que contiene:

La palabra vaca,

El conjunto L

Todas las palabras formadas por la concatenacin de


miembros de L*

Por ejemplo, si L = {abra, cadabra}, L*


abracadabra, cadabraabra, . . .}
53

= { , abra, abraabra,

Fundamentos Matemticos. Ejercicios


1. Expresar en extensin el conjunto {x|x N, x<10 }
2. Expresar en intencin el conjunto {4, 6, 8, 12, 14, 16}
3. Un juego infantil consiste en proponer simultneamente,
ya sea piedra, tijeras o papel. Se supone que tijera
gana sobre el papel, piedra sobre tijera y papel sobre
piedra. Determinar si la relacin gana sobre, que es un
subconjunto de {piedra, tijera, papel}x{piedra, tijera,
papel} es:
a) Reflexiva;
b) Simtrica;
c)Transitiva
54

Fundamentos Matemticos. Ejercicios


4. Considerar el conjunto de nmeros naturales, tales que
si son mayores que 5 o bien terminan en 5, entonces
contienen algn 1 2.
a.) Proponer 3 nmeros que cumplan la
condicin y 3 que no cumplan.
b.) Exprese el enunciado como una frmula
proposicional, donde M significa mayores
que 5, T es terminan en 5, U es contienen
algn 1 y D es contienen algn 2
5. Dar tres ejemplos de lenguajes basados en el alfabeto
{a,b,c}
55

Fundamentos Matemticos. Ejercicios

6. Calcular la concatenacin del lenguaje { , aba}


con {a, bb, }
7. Obtener {a, bb}* (los primeros 10 elementos)

56

Teora Autmata: autmata


finito

Dr. Vctor Heughes Escobar Jeria.


Primer Semestre 2010
e-mail: victorescobar@yahoo.com
victor.escobar14@docentes.inacap.cl

OBJETIVO

Identificar

58

los tipos de autmatas existentes

Autmatas Finitos
El modelado de una mquina en lo relacionado con secuencias o
ciclos de acciones se aproxima ms al enfoque que nos centraremos.
Mquinas

abstracciones matemticas

Secuencia de
eventos

Mquinas ms simples = Autmatas finitos relacionados con los


lenguajes regulares.

Modelo de eventos:
Estado: es una situacin que se permanece cierto lapso de
tiempo. Ej. estado civil.
acciones o eventos: para pasar de un estado a otro.

59

Autmatas Finitos.
Ej. Modelo discreto de estados civiles de una persona
Boda
Soltero

Casado

:Transicin
Muerte
cnyuge

Boda
Divorcio

:marca inicial
:marca inicial

Boda
Divorc.

Viudo

Ejercicio: Realizar un modelo discreto de un telfono


YD: yo descuelgo.
YC: yo cuelgo
YM: Yo marco
OD: otro descuelga ...

60

Autmatas Finitos.
Estados Finales.
Propsito de algunos modelos de estados y eventos, es reconocer
secuencias de eventos buenos de que se pueden diferenciar de la secuencia
malas.
Ejemplo. Simular el funcionamiento de una mquina automtica vendedora
de bebidas en lata. La mquina acepta monedas de 1, 2 y 5 y el precio de cada
lata es de 5. Consideraremos que el evento llamado 1 es la accin de
introducir una moneda de valor 1 en la mquina, y as con las otras.
Solucin.
Estado. Recordar lo que lleva acumulado
Inicial. Estado 0

61

Autmata de una mquina vendedora de


bebidas en lata.
2

1
1

1
5

1
2
1

5
2,5

2
4

62

1, 2,5

Autmatas Finitos.
Mquina de Estados Finitos. (retomemos el ejemplo de la mquina
vendedora)
En ese modelo:
Se pudo reconocer secuencias de eventos aceptables como la
secuencia 2, 2, 1; como secuencias no aceptables, como 1,1,1.
Desde ahora utilizaremos caracteres y los eventos se llamarn
transiciones. Por ejemplo, en vez de meter 1 vamos a tener una
transicin 1 y la secuencia de eventos van a representarse por
concatenaciones de caracteres, esto es, por palabra.
As en el ejemplo de las bebidas la palabra 1121 representa la secuencia
de eventos de meter 1, meter 1, meter 2, meter 1

63

Autmatas Finitos.
Una cinta de entrada
Visin abstracta

Un control
Una cabeza de lectura (y
eventual escritura)

Ejemplo.
q1

q0

b
a
q2

64

Transicin palabra.
bb
ab

q0 q2 q2
q0 q1 q1

Autmatas Finitos
Determinstico.
Definicin Formal. Una mquina de estados finitos M es un quntuplo
k , , , q0 , F , donde:

conjunto de identificadores (smbolos) de estados;

es el alfabeto de entrada;
q0 k es el estado inicial;
F

es un conjunto de estados finales;

:k k
es la funcin de transiciones que a partir de un
estado y un smbolo del alfabeto obtiene un nuevo estado.

65

AUTMATAS FINITOS
DETERMINSTICO.
Ejemplo.

q1

q0

b
a

q2

Este AFD puede ser expresado formalmente como:

M k , , , q0 , F

k q0 , q1 , q2

a, b

q , a , q , q , b , q , q , a , q ,

q , b, q , q , a , q , q , b, q
F q

66

AUTMATAS FINITOS
DETERMINSTICO.

se puede expresar mediante una tabla de transiciones, por ejemplo:


q

67

q,

q0

q1

q0

q2

q1

q1

q1

q1

q2

q0

q2

q2

Trabajo 1.
- Investigar sobre los siguientes temas:
Bison
Yacc
Flex
Lex
- Comparar Bison v/s Yacc
- Comparar Flex v/s Lex
El trabajo no debe ser superior a 10 pg. (No incluye ni portada ni
bibliografa) y no debe ser inferior a 6 pg. El trabajo es individual y debe
ser entregado el da 15 Abril.

68

S-ar putea să vă placă și