Está en la página 1de 12

Introduccin

Qu es un Algoritmo?

Cualquier problema puede ser resuelto
con un programa de computadora?

Cuando un algoritmo puede ser
considerado como prcticamente
realizable?
Por ms de 65 aos (desde antes de que las
computadoras surgieran) los cientficos de la
computacin han analizado estas preguntas.

Sus ingeniosas respuestas han influenciado
profundamente el campo de la computacin.

Uno de los grandes personajes fue Alan Turing
(1912-54) matemtico ingls que sent las bases
tericas de la computacin.

Introduccin
Autmata Finito
Un autmata finito (AF) es un modelo de
computacin muy restringido, sin embargo tiene una
gran aplicacin en reconocimiento de patrones.

Un AF representa la mquina ms simple; cuenta tan
solo con una cinta de entrada, una cabeza lectora y
una unidad de control. Carece de memoria auxiliar.

Un AF es importante pues es considerado un
dispositivo reconocedor de lenguaje.

Un autmata finito es llamado determinstico (AFD)
cuando su operacin est completamente
determinada por su entrada.
Autmata Finito Determinstico
a b a a b b a
Control
finito
qo
q5 q1
q4 q2
q3
cinta de entrada
Modelo de un AFD


Autmata Finito Determinstico
Operacin del Automata

(1) Cinta dividida en cuadros, con capacidad de slo un smbolo por
cuadro.
(2) La unidad de proceso es llamada control finito (y puede estar en uno
de varios estados (q
0
, q
1
, ...).
(3) El control finito puede leer el smbolo escrito en cualquier posicin
de la cinta, utilizando su cabeza lectora movible, desplazndose
nicamente hacia la derecha de la misma.
(4) Al inicio la cabeza lectora se posiciona en el cuadro de ms a la
izquierda de la cinta y el control finito es situado en su estado inicial
(normalmente q
0
).
(5) El AF puede leer solo un smbolo a la vez y posiblemente cambiar
de estado. Una vez ledo un smbolo, la cabeza lectora se posiciona
automticamente en el cuadrado siguiente , hacia la derecha. De
esta manera la siguiente operacin leer el smbolo del siguiente
cuadro de la cinta.
Ejercicios
1. Genere un autmata finito que acepte los siguientes lenguajes
sobre el alfabeto {0,1}
(a) El conjunto de cadenas que termine en 00.
(b) El conjunto de cadenas que contenga 101.
(c) El conjunto de cadenas tales que cada 5 smbolos contengan
exactamente dos 0s, ej. 0111010011,

2. Autmata finito que reconozca:
(a) Nombres de variables en java.
(b) Enteros
(c) Reales
Definicin Formal
Def. Un autmata finito determinstico , es una estructura abstracta
que consiste en un quntuplo, M = <K, , q
0
, , F>, en
donde:

K es un conjunto finito de estados.
es un conjunto finito de smbolos llamado alfabeto.
: K x K, es una funcin de transicin de estados.
q
0
K es el estado inicial.
F K es el conjunto de estados finales.
Definicin
Ejemplo:

1. Construyamos un automata que reconozca el lenguaje 0
+
1*






Formalmente el AFD se expresa como M
1
= (K, , , s, F), en
donde:
K = {q
0
, q
1
}
= {a,b}
s = q
0

F = {q
0
}

a b
q
0
q
0
q
1
q
1
q
1
q
1
q
0
q
1

0
0,1
1
El Lenguaje Reconocido por un AFD
Para poder definir el lenguaje reconocido por un AFD,
es necesario primero redefinir la funcin , para que
reciba cadenas como entrada, es decir:

: K x * K

La intencin es que (q
i
,w) represente el estado del
AFD al que se arriba despus de haber procesado la
cadena w, a partir del estado q
i
.
El Lenguaje Reconocido por un AFD

Def. Dado un autmata finito determinstico
M=(K, , , q
0
, F) y sea q
i
K, un estado
cualquiera, definimos a partir de como:

i) (q
i
, ) = q
i

i) (w*)(a),
(q,wa)=((q,w),a)
El Lenguaje Reconocido por un AFD

Definicin
El lenguaje aceptado por un AFD, M=(K, , , q
0
, F),
designado L(M), se define como el conjunto:

L(M) = { w | w* y (q
0
,w) F }

Def. Un lenguaje es un conjunto regular (o regular) si consiste en
el conjunto aceptado por algn autmata finito.

Ejemplos
1. Genere un autmata finito que acepte los siguientes
lenguajes sobre el alfabeto {0,1}
a) El conjunto de cadenas que terminen en 00.
b) El conjunto de cadenas que contengan 000.
c) El conjunto de cadenas a los cuales cada 5 smbolos
contengan dos 0s.

2. Autmata finito que reconozca:
a) Nombres de variables en Java.
b) Nmeros enteros.
c) Nmeros Reales

3. Un autmata finito que acepte cadenas {0,1} con un nmero
par de ceros.

También podría gustarte