Vous êtes sur la page 1sur 16

Autómatas

L.I. Marco Antonio Ruiz Vicente


La Teoría de Autómatas es una rama de la Teoría de la Computación
que estudia las máquinas teóricas llamadas autómatas. Estas
máquinas son modelos matemáticos.

Un Autómata está formado por un conjunto de estados, uno de los


cuales es el estado en el que la máquina se encuentra inicialmente.
Recibe como entrada una palabra (una concatenación de símbolos
del alfabeto del autómata) y según esta palabra la máquina puede
cambiar de estados.
Los Autómatas se clasifican según el número de
estados (finito o no), la forma en que se realiza el
cambio de estado (determinista o no), si acepta o no el
símbolo vacío ε, si tiene o no una pila, etc.
Los Autómatas están estrechamente relacionados con la
máquina de Turing (1936), de gran importancia en la
Teoría de la Computación. Esto se debe a que una
máquina de Turing puede simular el almacenamiento y la
unidad de control de una computadora. Tenemos certeza
de que lo que no puede ser resuelto por una máquina de
Turing no puede ser resuelto por una computadora real.
Lenguaje
regular

a:
ta

Re
e n

c
es

on
p r

oc
Re

e
Expresión Puede convertirse a:
Autómata
regular Finito
Definición de autómata
finito determinista
Un autómata finito determinista
consta de:
1. Un conjunto finito de estados, a menudo designado
como Q.

2. Un conjunto finito de símbolos de entrada, a


menudo designado como Σ.
3. Una función de transición que toma como
argumentos un estado y un símbolo de entrada y
devuelve un estado. La función de transición se
designa habitualmente como δ . En nuestra
representación gráfica informal del autómata, δ se
ha representa mediante arcos entre los estados y
las etiquetas sobre los arcos. Si q es un estado y a
es un símbolo de entrada, entonces δ (q, a) es el
estado p tal que existe un arco etiquetado a que va
desde q hasta p.
4. Un estado inicial, uno de los estados de Q.

5. Un conjunto de estados finales o de aceptación F. El


conjunto F es un subconjunto de Q.
A menudo se hará referencia a un autómata finito
determinista mediante su acrónimo: AFD. La representación
más sucinta de un AFD consiste en un listado de los cinco
componentes anteriores.

Normalmente, en las demostraciones, se definirá un AFD


utilizando la notación de “quíntupla” siguiente:

A =(Q, Σ, δ, q0 , F)
Donde:
• A es el nombre del AFD
• Q es el conjunto finito de estados denotado por
q0, q1, q2, …
• Σ el alfabeto, es decir, son los símbolos de entrada que formaran
palabras o cadenas.
• δ o T es la función de transición, la cual determina el
comportamiento del autómata
δ(qi,a)=qj
• Significa que si en el estado qi de Q el autómata recibe el
símbolo de entrada a de Σ, entonces pasa al estado qj de Q.
• q0 es el estado inicial
• F es un subconjunto de Q, que contiene los estados de
aceptación o estados finales, que son los que provocan la
parada del autómata.

Cuando se llega a uno de estos estados a través de una palabra


w de Σ*, diremos que el autómata acepta a dicha palabra (es
una palabra del lenguaje del autómata).
Representación o diagrama de un
AFD
• Se representan los estados del AFD mediante círculos que encierran
el nombre del estado (q0, q1,...).
• La posible transición
δ(qi,x)=qjδ(qi,x)=qj
se representa mediante una flecha que empieza en qi y termina
en qj con la etiqueta "x".
• Los círculos de los estados de aceptación tienen el borde doble.
• El estado inicial, q0, se representa con una flecha que termina en
dicho estado (pero no empieza en ningún estado).
Simbología
• Estados
• Estado inicial
• Transiciones
• Estado aceptado (uno o varios)
• Σ Lenguaje
• Σ* Todas las palabras posibles
• W palabra
• |w| longitud de palabra
• L Lenguaje
• “Un token o también llamado componente léxico es una cadena de caracteres
que tiene un significado coherente en cierto lenguaje de programación. Ejemplos
de tokens podrían ser palabras clave (if, else, while, int, …), identificadores,
números, signos, o un operador de varios caracteres, (por ejemplo, :=).”
• Patrones:
“Regla que describe el conjunto de lexemas que pueden representar a un
determinado componente léxico en los programas fuente. En otras palabras, es la
descripción del componente léxico mediante una regla.”
• Lexema:
” Es cada secuencia de caracteres concreta que encaja con un patrón”

Vous aimerez peut-être aussi