1. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE
MÉXICO
AUTÓMATAS Y LENGUAJES FORMALES
ALUMNA:
ALETVIA JACQUELINE LEÓN VENEGAS
INGENIERÍA EN COMPUTACIÓN
ICO-19
ATLACOMULCO, MÉX. A 06 DE MARZO DE 2015.
2. AUTÓMATA FINITO NO DETERMINISTA
ENTRADAS
0 1
q0 {q0, q3} {q0, q1}
q1 Φ {q2}
q2 {q2} {q2}
q3 {q4} Φ
q4 {q4} {q4}
Determinar si M1, M2, M3 son cadenas aceptadas por el autómata anterior.
M1 = 01001
δ (q0, 0) = {q0, q3}
δ (q0, 01) = δ (ʆ(q0, 0), 1) = δ ({q0, q3}, 1)=
δ (q0, q3) = δ (q0, 1) U δ(q3, 1) = {q0, q1}
δ(q0, 010) = {q0, q3}, δ(q0, 0100) = {q0, q3, q4}
δ(q0, 01001) = {q0, q1, q2}
Q = {q0, q1, q2, q3,q4}
Σ = {1, 0}
q₀ = { q0}
F = {q2, q4}
E
N
T
R
A
D
A
S
MATRIZ
3. M2 = 100011
δ(q0, 1) = {q0, q1}
δ(q0, 10) = δ(δ(q0, 1), 0) = δ({q0, q1), 0) =
δ(q0, q1) = δ(q0, 0) U δ(q1, 0) = {q0, q3}
δ(q0, 100) = {q0, q3}, δ(q0, 1000) = {q0, q3, q4}
δ(q0, 10001) = {q0, q1, q2}
δ(q0, 100011) = {q0, q1, q2}
M3 = 1111000
δ(q0, 1) = {q0, q1}
δ(q0, 11) = {q0, q1}
δ(q0, 111) = {q0, q1}
δ(q0, 111) = {q0, q1, q2}
δ(q0, 11110) = {q0, q3}
δ(q0, 111100) = {q0, q3, q4}
δ(q0, 1111000) = {q0, q3, q4}
EXPRESIONES REGULARES
Las expresiones regulares son una notación especial que se utiliza
habitualmente para describir los lenguajes de tipo regular. La notación
más utilizada para especificar patrones son las expresiones regulares,
sirven como nombres para conjuntos de cadenas.
de analizadores léxicos para compiladores, en la búsqueda de patrones
dentro de los editores de texto, en la descripción de redes neuronales y
circuitos electrónicos, etcétera.
En las expresiones regulares pueden aparecer símbolos de dos tipos:
Símbolos base: Son los del alfabeto del lenguaje que queremos
describir, λ para describir la palabra vacía y ∅para describir un
lenguaje vacío.
Símbolos de operadores: „+‟ o unión, „.‟ o concatenación y „*‟ para
la clausura. En ocasiones se utiliza para la unión el símbolo „|‟ y
el punto se omite en la concatenación de expresiones regulares.
4. LENGUAJE DE LAS EXPRESIONES REGULARES
El lenguaje de las expresiones regulares se construye de forma inductiva
a partir de símbolos para expresiones regulares elementales y operadores.
Expresiones regulares
Dado un alfabeto y los símbolos: (lenguaje vacío), (palabra vacía),
·(concatenación), + (unión), *(clausura), se cumple:
Los símbolos y son expresiones regulares.
Cualquier símbolo a es una expresión regular.
Si u y v son expresiones regulares, entonces, u+v, uv, u* y v* son
expresiones regulares.
Sólo son expresiones regulares las que se pueden obtener aplicando un
número finito de veces las reglas anteriores.
Se establece la siguiente prioridad en las operaciones:
Paréntesis ( )
Clausura *
Concatenación ·
Unión +
Ejemplo, sobre el alfabeto Σ= {a,b}, podemos definir las siguientes
expresiones regulares:
Expresión Regular Lenguaje
ab {ab}
a +∅ {a}
(a+b)*a Σ*{a}
a+ λ {λ,a}
b*ab* {bnabm/n,mN}
a* {λ,a,aa,aaa…}
AUTÓMATAS FINITOS Y EXPRESIONES REGULARES
Todo lenguaje definido por un autómata finito (AFD, AFND) es también
definido por una expresión regular y viceversa.
AFN ASOCIADO A UNA EXPRESIÓN REGULAR
1.α= α1+ α2 tal que op(α1), op(α2) < n
A partir de M1y M2construimos otro autómata M(la unión), el autómata que
acepta el mismo lenguaje es:
5. Ejemplo: AF construido para la expresión regular 01* + 1:
M1 representa el autómata para la expresión regular 0
M2 representa el autómata para la expresión regular 1*
M3 representa el autómata para la expresión regular 1
En el Autómata final se integran simultáneamente los autómatas para
la concatenación (0 con 1*) y la suma de expresiones regulares 01*
+ 1
El método para obtener
siguiente:
Obtener las ecuaciones características del autómata.
Resolver el sistema de ecuaciones
←solución para el estado inicial.
Para comprobar que es válido hay que probar que se cumple (1) para
toda solución xi= i del sistema de ecuaciones, y en particular la
solución para el estado inicial es la expresión regular
correspondiente al autómata
No es necesario resolver todas las incógnitas, sólo necesitamos
despejar la incógnita correspondiente al estado inicial x0.
Ejemplo. Sea el AF:
Ecuaciones características:
x0= 0x0+ 1x1+1
x1= 0x0+ 1x2
x2= 0x2+ 1x1+1
Resolvemos aplicando la regla de inferencia X=αX+β X=α*β
Comenzando por la ecuación (3): x2= 0*(1x1+1)=0*1x1+0*1
Sustituyendo en (2): x1= 0x0+10*1x1+10*1=(10*1)*(0x0+ 10*1)=
=(10*1)*0x0+ (10*1)*10*1
6. Sustituyendo en (1): x0= 0x0+ 1[(10*1)*0x0+ (10*1)*10*1]+1= 0x0+
1(10*1)*0x0+ 1(10*1)*10*1+1= (0+ 1(10*1)*0)x0+ 1(10*1)*10*1+1=
(0+1(10*1)*0)*(1(10*1)*10*1+1)=(0+1(10*1)*0)*1[(10*1)*(10*1)+]=(0+
1(10*1)*0)*1(10*1)* expresión regular que describe el lenguaje
L(M).(aplicando las propiedades:(ab*b+a)=a(b*b+)=ab*).
EJEMPLO:
Hallar el lenguaje reconocido por el siguiente autómata utilizando
ecuaciones características.
Solución:
X0 = aX4 + bX1
X1 = aX0 + bX2 + b + aX3
X2 = aX1+ aX2 + a
X3 = bX1
X4 = bX0
a. Empezar por las ecuaciones alejadas de q0
X2 = aX1 + aX2 + a → X2 = a* • (aX1 + a)
b. Continuar acercándonos a q0 (X0)
X1 = a X0+ b X2 + b + aX3 → X1=a X0+ b • (a* • (aX1 + a)) + b + a • bX1 =
(ba*a + ab) • X1 + aX0 +b a*a+b
X1 = (b a* a + a b)* • (aX0 + b a* a + b)
X0 = a X4+ b X1 → X0 = a b X0 + b • ((b a* a + a b)* • (aX0 + b a* a + b)
)
X0 = a b X0 + b • (b a* a + a b)* • aX0 + b • (b a* a + a b)* • b a*a + b
• (b a*
a + a b)*• b
X0 = X0• (ab + ab • (ba*a + ab)*) + b • (ba*a + ab)* ba*a + b (ba*a +
ab)* b
X0 = (ab + b) • (ba*a + ab)* • a)* • (b • (ba*a + ab)* • (ba*a + b))
X0 = (ab)* b (ab)* b (ab)* a* es el lenguaje reconocido.
FRACTALES
Un fractal es un ente matemático que no se define de la manera habitual
como se definen otros conceptos matemáticos. Se caracteriza por una
propiedad de invariancia en presencia de “cambios de escala”. Esta
propiedad se denomina “auto-semejanza” y puede presentarse de maneras y
formas muy distintas: en algunos casos, la auto-semejanza es matemática
exacta y hablamos de “fractales deterministas”, mientras que en otros
casos, que se encuentran en el mundo real que nos rodea, la auto-
semejanza es aproximada.
DIMENSION FRACTAL
Matemáticamente, un punto tiene dimensión topológica cero, una línea
tiene dimensión 1, un cuadrado tiene dimensión 2 y un cubo tiene
dimensión 3. A estas dimensiones espaciales, se le suma una cuarta
dimensión: el tiempo. Estas cuatro dimensiones son números enteros. La
genialidad de Mandelbrot consistió en intuir que podían existir
configuraciones con dimensiones no enteras! Asi por ejemplo, un segmento
puede dividirse en N partes idénticas, cada una de las cuales estará en
la relación r = 1/N con el segmento total. Análogamente, un cuadrado en
el plano puede dividirse en cuadrados más pequeños auto-semejantes que
7. estarán en la relación r = 1/N1/2 con la figura completa. Lo mismo
sucederá con un cubo dividido en cubos más
pequeños. En ese caso, r = 1/N1/3. De esta manera un objeto auto-
semejante dimensional puede dividirse en copias más pequeñas del mismo
que estén en la relación r = 1/N1/D con el todo. O bien N = 1/rD de donde
despejamos la "DIMENSION FRACTAL" D:
D = log N / log (1 / r).
Por supuesto, D no precisa ser un número entero y los logaritmos pueden
tomarse en cualquier base. Pero su valor numérico para una curva plana
auto-semejante representa cuantitativamente cuan irregular es la curva.
Los fractales cumplen en general con tres características importantes:
Se basan en una geometría compleja y de infinito detalle; es decir,
podemos aumentar mil es de veces el lente de nuestra cámara, y
seguiremos viendo tanto detalle aproximadamente como el que tenía
la figura original.
La información que los genera es relativamente poca, y en
particular se basan en un principio de retroalimentación de los
resultados creando iteraciones que dependen de los parámetros de
entrada. Normalmente se manejan números complejos. (Un número
complejo es aquel que se compone de una parte real y de una parte
imaginaria).
La mayoría de los fractales cumplen con el principio de "similitud
a sí mismos" (auto-similar).
Existen varios fractales que son ya famosos por sus características. El
mas famoso de todos ellos es el conjunto de Mandelbrot. La formula que
describe al conjunto de Mandelbrot es:
znuevo = z2viejo + c
Donde z es un número complejo (Ej. 9+3i) y c es una constante (Ej. -0.122
+0.745i). En realidad, el conjunto de Mandelbrot se le considera una
especie de diccionario que describe a otros fractales llamados los
conjuntos de Julia. Siempre se comienza con z0=0.
La pregunta a contestar es si después de un cierto número de iteraciones
dada la constante c, el resultado tenderá a infinito o no. Si el
resultado es infinito, entonces en el plano complejo se colorea esta
constante de algún color. En cambio, si el resultado tiende a un valor,
se colorea de otro. También, según el número de iteraciones antes de
llegar a un resultado no infinito se puede escoger un color.
Al final, el plano complejo queda como la siguiente figura:
8. Otro fractal muy famoso es el triángulo de
Sierpinsky. Este fractal se construye al
utilizar un triángulo como parámetro inicial, y
posteriormente iterando las siguientes reglas:
Se escala el objeto a la mitad
Se repite el objeto tres veces: una en la
parte inferior izquierda, otra en la parte
inferior derecha y la última en la parte
central superior. Después de una primera
iteración se obtiene como resultado una figura construida por tres
triángulos. Después de la segunda iteración serán nueve. Después de
la tercera serán 27, etc.
Esta figura además tiene varias características dignas de estudio. No
importa con qué figura se comienza (un triángulo, un cuadrado, una cara,
un barco, etc.) Si se siguen las reglas, después de un cierto número de
iteraciones siempre se obtendrá la misma figura.
Fractales aleatorios: Los fractales pueden
ser básicamente de dos formas. Están los
que se componen de muchas copias escaladas
y rotadas de sí mismas como el copo de
nieve de Von Koch o el triángulo de
Sierpinski. Incluso el conjunto complejo de
Julia cae en esta categoría puesto que su
estructura está contenida idénticamente en
sí misma. La generación gráfica de estas
figuras requiere una regla básica que se repite una y otra vez,
generalmente de forma recursiva. En los fractales que queremos construir
se incluye un elemento de aleatoriedad, intentando así, simular fenómenos
naturales. A estos fractales les llamaremos fractales aleatorios.
CERRADURAS
La cerradura de Kleene o cerradura estrella sobre algún alfabeto S, se
define como . La cerradura positiva se define como
*
= 0
1
2
3
... es el conjunto de todas las palabras que pueden
ser formadas con letras del alfabeto , incluyendo a . A *
se le llama
la Cerradura de Kleene de . Cerradura: w pertenece a *
sólo si puede ser
obtenida a partir de mediante un número finito de aplicaciones del paso
recursivo. Si el resultado de aplicar una operación binaria (*) esta
definido en un cinjujnto S, entonces se dice que S es cerrado con
respecto a dicha operación binaria; es decir, .
DEFINICIÓN RECURSIVA DE *
Base: *
Paso recursivo: si w *
y a , entonces
wa *
.
Cerradura: w pertenece a *
sólo si puede ser obtenida a partir de
mediante un número finito de aplicaciones del paso recursivo.
0
*
n
n
AA
1n
n
AA
9. EJEMPLOS DE CERRADURA DE KLEENE
L = {0, 11}
L0
= {}
L1
= {0, 11}
L2
= {00, 011, 110, 1111}
L3
= {000, 0011, 0110, 01111, 1100, 11011, 11110, 111111}
L4
= {0000, 00011, 00110, 001111, 01100, 011011, 011110,
0111111, 11000, 110011, 110110, 1101111, 111100, 1111011,
1111110, 11111111}
L*
son todas las que se pueden formar concatenando cualquier
número de veces (excepto ) palabras de L. Las palabras
pueden ser iguales o distintas.
CONJUNTOS REGULARES
Un conjunto es regular si:
Es el conjunto vacío, , ó el conjunto cuyo elemento es la palabra
vacía, {}, ó es un subconjunto simple (sólo un elemento) del
alfabeto.er generado a partir
Puede ser generado a partir de ó de {} ó de un subconjunto
simple utilizando las operaciones de unión, concatenación y
cerradura de Kleene.
DEFINICIÓN RECURSIVA DE CONJUNTO REGULAR
Sea un alfabeto. Los conjuntos regulares sobre se definen
recursivamente de la siguiente manera:
Base: , {} y {a}, para toda a , son conjuntos regulares sobre
.
Paso recursivo: Si X y Y son conjuntos regulares sobre , entonces
los conjuntos X Y, XY y X*
también lo son.
Cerradura: X es un conjunto regular sobre sólo si puede ser
obtenido a partir de los elementos base mediante un número finito
de aplicaciones del paso recursivo.
EJEMPLOS:
{a, b}*
{bb}{a, b}*
es regular sobre {a, b}
Consiste del conjunto de cadenas que contienen a la subcadena
bb.
El conjunto de cadenas que empiezan y terminan con una a y
contienen al menos una b es regular sobre {a, b}.
{a}{a, b}*
{b}{a, b}*
{a}
EXPRESIONES REGULARES
Las expresiones regulares se utilizan para abreviar la descripción de
conjuntos regulares.
10. El conjunto regular {a} es representado por a.
Las operaciones de unión, concatenación y cerradura de Kleene
son denotadas por +, yuxtaposición y *, respectivamente.
DEFINICIÓN RECURSIVA DE UNA EXPRESIÓN REGULAR
Sea un alfabeto. Las expresiones regulares sobre se definen
recursivamente de la siguiente manera:
Base: , y a, para toda a , son expresiones regulares
sobre .
Paso recursivo: Si u y v son expresiones regulares sobre ,
entonces las expresiones (u+v), (uv) y (u*
) también lo son y
representan a los conjuntos {u} {v}, {u}{v} y {u}*
,
respectivamente.
Cerradura: u es una expresión regular sobre sólo si puede
ser obtenido a partir de los elementos base mediante un
número finito de aplicaciones del paso recursivo.
EJEMPLO:
Lenguaje Expresión regular
{}
{0} 0
{001} = {0}{0}{1} 001
{0, 1} = {0}{1} 0 + 1
{0, 10} = {0}{10} 0 + 10
{1, }{001} (1 + )001
{110}*
{0, 1} (110)*
(0 + 1)
{1}*
{10} 1*
10
{10, 111, 11010}*
(10 + 111 + 11010)*
{0, 10}*
({11}*
{001, }) (0 + 10)*
((11)*
+ 001 + )
(00 + 01 + 10 + 11)*
((0 + 1)(0 + 1))*
11. PROPIEDADES DE CERRADURA
Los conjuntos regulares son cerrados bajo las operaciones de:
Unión
Intersección
Complemento
Concatenación
Estrella de Kleene
DEMOSTRACIÓN DE CERRADURA BAJO
Demostración de cerradura bajo [
Sean D1 = (Q1,, 1, s1, F1) y D2 = (Q2,, 2, s2, F2) dos DFA.
Construiremos un D DFA tal que
L(D) = L(D1) L(D2).
Definimos D = (Q,, , s, F) donde
Q = Q1 Q2
s = (s1, s2)
F = (Q1 F2) (F1 Q2)
((q1, q2), a) = (1(q1, a), (q2, a))
Se puede demostrar por inducción en que
L(D) si L(D1) o bien L(D2).
CERRADURA BAJO Y COMPLEMENTO
Intersección
Se construye un autómata como en el caso de , salvo que
F = F1 F2.
Complemento
Sea A = (Q,, , s, F) un DFA. Sea A = (Q,, , s, Q F). Claramente
L(¯A) = * L(A).
CERRADURA BAJO CONCATENACIÓN Y ESTRELLA DE KLEENE
Sean A = (QA,, A, sA, FA) y B = (QB,, B, sB, FB) dos DFA. El autómata
C = (QC,,C, SC, FC) se construye de la siguiente forma:
QC = QA QB
SC = sA
FC = FB
(q, a) = A(q, a) si q QA
(q, a) = B(q, a) si q QB
(q, ) = sB si q FA
C es un NFA- tal que L(C) = L(A)L(B). Para construir A0 tal que
L(A0) = L(A)*, se añaden transiciones- de los estados en FA a sA.