Sie sind auf Seite 1von 40

AFD AFND

EXPRESIONES
REGULARES

GRAMTICAS REGULARES
GRAMATICAS

LENGUAJES

MAQUINAS

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

EQUIVALENCIA ENTRE AFND Y AFD

Para cada AFD existe un AFND


equivalente y viceversa
AFD

AFND los AFDs son un caso


particular de los AFND teniendo en
cuenta que p Q, a , |f(p,a)|= 1 y
no hay transiciones nulas (qQ,
f(q,)=)

EQUIVALENCIA ENTRE AFND Y AFD


AFND

AFD se puede construir un

AFD (,Q, f,q0, F) a partir de un AFND


(,Q, f, q0, F) mediante un algoritmo.

EQUIVALENCIA ENTRE AFND Y AFD

Ejemplo: A4=({0,1}, {q0 , q1 , q2 , q3}, q0 ,{q1}, f)


f(q0,0)= {q0}
f(q0,1)= {q1, q2}
A4
0
1
f(q1,0)= q0
q0
q0
q1 ,
f(q1,1)= {q0, q1}
f(q2,0)= { q2, q3 }
*q1
q0
q0 ,
f(q2,1)=
f(q3,0)= q0
f(q3,1)= q1

q2

q2 , q 3

q3

q0

q1

q2
q1

EQUIVALENCIA ENTRE AFND Y AFD


A4

q0

q0

q 1, q 2

*q1

q0

q 0, q 1

q2

q2 , q3

q3

q0

q1

A4

q0

q0

q 1, q 2

EQUIVALENCIA ENTRE AFND Y AFD


A4

A4

q0

q0

q1, q2

q0

q0

q 1, q 2

*q1

q0

q0, q1

*q1, q2

q0 , q2 , q3

q 0, q 1

q2

q2 , q3

q3

q0

q1

EQUIVALENCIA ENTRE AFND Y AFD


A4

q0

q0

q1, q2

*q1

q0

q0, q1

q2

q2 , q3

q3

q0

q1

A4

q0

q0

q1, q2

*q1, q2

q 0, q 2 , q 3

q0, q1

q0, q2 , q3

q 0, q 2 , q 3

q1, q2

EQUIVALENCIA ENTRE AFND Y AFD


A4

A4

q0

q0

q1, q2

q0

q0

q1, q2

*q1

q0

q0, q1

*q1, q2

q 0, q 2 , q 3

q0, q1

q2

q2 , q3

q0, q2 , q3

q 0, q 2 , q 3

q1, q2

q3

q0

*q0, q1

q0

q0, q1, q2

q1

EQUIVALENCIA ENTRE AFND Y AFD


A4

q0

q0

q1, q2

*q1

q0

q0, q1

q2

q2 , q3

q3

q0

q1

A4

q0

q0

q 1, q 2

*q1, q2

q0, q2 , q3

q 0, q 1

q 0, q 2 , q 3

q0, q2 , q3

q 1, q 2

*q0, q1

q0

q 0, q 1, q 2

*q0, q1, q2

q0, q2 , q3

q 0, q 1, q 2

EQUIVALENCIA ENTRE AFND Y AFD


A4

q0

q0

q 1, q 2

*q1

q0

q 0, q 1

q2

q2 , q3

q3

q0

A4
C0
*C1
C2
*C3
*C4

q1

q0

q0

q1, q2

*q1, q2

q 0, q 2 , q 3

q 0, q 1

q 0, q 2 , q 3

q 0, q 2 , q 3

q 1, q 2

*q0, q1

q0

q 0, q 1, q 2

*q0, q1, q2

q 0, q 2 , q 3

q 0, q 1, q 2

A4=({0,1}, {c0 , c1 , c2 , c3 , c4}, c0 ,{ c1 , c3 , c4}, f)


f(c0,0)=
f(c0,1)=
f(c1,0)=
f(c1,1)=
f(c2,0)=

c0
c1
c2
c3
c2

f(c2,1)=
f(c3,0)=
f(c3,1)=
f(c4,0)=
f(c4,1)=

c4
c0
c4
c3
c4

EQUIVALENCIA ENTRE AFND- Y AFD

Video de AFND- y AFD


http://www.youtube.com/watch?v=d63V5nDeLXA

AUTOMATAS FINITOS ASOCIADO A UNA


GRAMTICAS REGULARES
Gramtica regular asociada a un AFD

Si L es aceptado por un AFD entonces L puede generarse mediante


una gramtica regular.
Sea A=(Q, , f, q0, F), la gramtica regular equivalente es aquella definida como

G=(Q,, P, q0), donde P viene dado por:


Si f(q,a)=p entonces aadir a P la produccin qap.
Si f(q,a)=p y p F entonces aadir a P la produccin qa.
Si q0 F entonces aadir a P la produccin q0

AUTOMATAS FINITOS ASOCIADO A UNA


GRAMTICAS REGULARES

Ejemplo: a partir del


A4=({0,1}, {c0 , c1 , c2 , c3 , c4}, c0 ,{ c1 , c3 , c4}, f)
f(c0,0)=
f(c0,1)=
f(c1,0)=
f(c1,1)=
f(c2,0)=

c0
c1
c2
c3
c2

f(c2,1)=
f(c3,0)=
f(c3,1)=
f(c4,0)=
f(c4,1)=

c4
c0
c4
c3
c4

G= ({0,1}, {c0 , c1 , c2 , c3 , c4}, c0,P)


co= 0c0|1
c1 = 0c2 |1
c2 = 0c2 |1
c3= 0c0 |1
c4= 0c2 |1

AUTMATAS FINITOS ASOCIADO A UNA


GRAMTICAS REGULARES
Gramatica 3 a AFD/AFND: dada la gramtica lineal
por la derecha

G3=(T,N,S, P) se construye el autmata equivalente


A=(T,N{F}, f, S, {F}) donde F N es un
nuevo smbolo no terminal y
f se construye:
Si A::=aB f(A,a)=B
Si A::=a f(A,a)=F
Si S::= f(S,)=F

AUTMATAS FINITOS ASOCIADO A UNA


GRAMTICAS REGULARES
Ejemplo:

Dada la gramtica G=({0,1}, {A,B,C},A,P)


P={(A::=0B), (A::=), (B::=1C), (B::=1), (C::=0B)}
El Autmata que reconoce el lenguaje generado
por dicha gramtica ser.
A5=({0,1}, {A,B,C, F}, f, {A}, {F})
f(A,0)= B
f(A,)= F
f(B,1)= C
f(B,1)= F
f(C,0)= B

0
A

B
C
F

{C,F}

EXPRESIONES
REGULARES

EXPRESIONES REGULARES

Las expresiones regulares son una notacin


especial que se utiliza habitualmente para
describir los lenguajes de tipo regular.
La notacin ms utilizada para especificar
patrones son las expresiones regulares, sirven
como nombres para conjuntos de cadenas.
Los usos ms habituales de las expresiones
regulares son en la creacin de analizadores
lxicos para compiladores, en la bsqueda de
patrones dentro de los editores de texto, en la
descripcin de redes neuronales y circuitos
electrnicos, etctera.

EXPRESIONES REGULARES

En las expresiones regulares pueden aparecer


smbolos de dos tipos:
Smbolos

base: son los del alfabeto del lenguaje que


queremos describir, para describir la palabra vaca y
para describir un lenguaje vaco.
Smbolos de operadores: + o unin, . o
concatenacin y * para la clausura. En ocasiones se
utiliza para la unin el smbolo | y el punto se
omite en la concatenacin de expresiones regulares.

LENGUAJES DE LAS
EXPRESIONES REGULARES

El lenguaje de las expresiones regulares se


construye de forma inductiva a partir de
smbolos
para
expresiones
regulares
elementales y operadores.
Expresiones regulares
un alfabeto y los smbolos: (lenguaje
vaco), (palabra vaca), (concatenacin), +
(unin), *(clausura), se cumple:

Dado

Los smbolos y son expresiones regulares.


Cualquier smbolo a es una expresin regular.
Si u y v son expresiones regulares, entonces, u+v, u.v,
u* y v* son expresiones regulares.

LENGUAJES DE LAS
EXPRESIONES REGULARES
Slo

son expresiones regulares las que se


pueden obtener aplicando un nmero finito de
veces las reglas anteriores.
Se

establece la siguiente prioridad en las


operaciones:

1.Parntesis ( )
2.Clausura *
3.Concatenacin
4.Unin +

LENGUAJES DE LAS EXPRESIONES


REGULARES

A cada expresin regular le corresponde un lenguaje regular:

Si = , L() =

Si =, L() = {}.

Si =a, a , L() = {a}

Si y son dos expresiones regulares entonces:

L(+) = L()L()

L() = L()L()

L(*) = L()

Ejemplo, sobre el alfabeto = {a,b } , podemos definir las siguientes


expresiones regulares:
Expresiones Regulares
ab

Lenguaje
{a, b}

a +

{a}

(a+b)*a

*{a}

a+

{,a}

b*ab*

{bn abm/n,mN}

a*

{,a,aa,aaa}

LENGUAJES DE LAS EXPRESIONES


REGULARES

Propiedades de la Unin:

asociativo: + (+ ) = (+ ) +

conmutativo: +=+

elemento neutro la expresin vaca: + = + =

idempotente: + =

Propiedades de la concatenacin:

asociativo: ( ) = ( )

no es conmutativo:

elemento neutro la expresin lambda: ==

Tiene como elemento anulador la expresin vaca: = =

distributivo respecto al operador de unin: (+ ) =+

Propiedades de la clausura:

*=

*=

*=+ *

*=*

(*+*)* = (+ )*

(+)* = (**)*

TEOREMA DE KLEENE

Kleene enuncio unos teoremas que permiten


demostrar la equivalencia entre E.R y A.F, en
cuanto a que los dos representan de una forma u
otra L.R.
Los dos teoremas son:
Teorema de Anlisis: Todo lenguaje aceptado por un AF es
regular.
Teorema de Sntesis: Todo LR es aceptado por un AF.

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

Existen 2 algoritmos para pasar de una E.R., que


representa a un L.R., a un autmata que reconozca dicho
lenguaje.
1 Algoritmo: es el que asocia a cada regla de
descripcin de una E.R, un autmata que la reconoce. El
problema es que se generan autmatas muy grandes y es
necesario luego minimizarlos para poder trabajar con
ellos
2 Algoritmo: esta basado en el concepto de derivada.

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

Algoritmo Recursivo: asocia a cada E.R. un autmata


que reconoce el lenguaje descrito por dicha E.R.

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

= 1+ 2

A partir de M1 y M2 construimos otro autmata M(la unin), el


autmata que acepta el mismo lenguaje es:

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

= 1. 2

A partir de M1y M2construimos otro autmata M(la


concatenacin), el autmata que acepta el mismo lenguaje es:

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

= (1)*

A partir de M1 construimos otro autmata M(la clausura), el


autmata que acepta el mismo lenguaje es:

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

Ejemplo: AF construido para la expresin


regular 01* + 1:
M1 representa el autmata para la expresin regular 0
M2 representa el autmata para la expresin regular 1*
M3 representa el autmata para la expresin regular 1
En el Autmata final se integran simultneamente los
autmatas para la concatenacin (0 con 1*) y la suma de
expresiones regulares 01* + 1

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

Ejemplo: AF construido para la expresin regular 01* + 1:

M1 representa el autmata para la expresin regular 0

M2 representa el autmata para la expresin regular 1*

M3 representa el autmata para la expresin regular 1

En el Autmata final se integran simultneamente los autmatas para la


concatenacin (0 con 1*) y la suma de expresiones regulares 01* + 1

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

Ejemplo: AF construido para la expresin regular 01* + 1:

M1 representa el autmata para la expresin regular 0

M2 representa el autmata para la expresin regular 1*

M3 representa el autmata para la expresin regular 1

En el Autmata final se integran simultneamente los autmatas para la


concatenacin (0 con 1*) y la suma de expresiones regulares 01* + 1

TEOREMA DE KLEENE. SOLUCIN


AL PROBLEMA DE SNTESIS

Ejemplo: AF construido para la expresin regular 01* + 1:

M1 representa el autmata para la expresin regular 0

M2 representa el autmata para la expresin regular 1*

M3 representa el autmata para la expresin regular 1

En el Autmata final se integran simultneamente los autmatas para la


concatenacin (0 con 1*) y la suma de expresiones regulares 01* + 1

TEOREMA DE KLEENE. SOLUCIN AL


TEOREMA DE ANLISIS

El Teorema de Anlisis: para demostrar que a partir de un AF se puede obtener el


lenguaje que este acepta y que es regular, primero se va ha definir el concepto de
ecuacin caracterstica o fundamental.
Esto se hace en varios pasos

define xi como el conjunto de palabras que permiten pasar desde


el estado qi a un estado final.

1.

Se

2.

Si qi F xi , ya que q Q, q f(q,). Tambin


Si qi F no tiene porque estar en xi

3.

Si f(qi , a) = qj F, entonces el smbolo a debe pertenecer a xi

4.

Si f(qi , a) = qj , entonces la concatenacin en la entrada del smbolo


a, xj ( conjunto de cadenas que permiten pasar desde qj a un estado
final) debe estar en xi (conjunto de cadenas que permiten transitar
desde qi a un estado final). Asi axj xi

TEOREMA DE KLEENE. SOLUCIN AL


TEOREMA DE ANLISIS
5.

Para cada estado qi se puede definir el denominado sistema de


ecuaciones de conjunto lineales por la derecha que se calcula como
|a|

xi = Ci U Dij xj donde segn (2) Ci =


j=1

qi F
qi F

segn (4) Dij ={a | f(qi , a) = qj |}


6.

Una forma alternativa de definir este sistema de ecuaciones consiste


en utilizar las definiciones 3 y 4 donde solo se cambia el conjunto
Ci = {a f(qi , a) = qj F }

si i=0 y q0 F
en caso contrario

Si el estado qi es final, aadimos el termino a al


segundo miembro.
Si el estado q0 es final, aadimos el termino al
segundo miembro para x0.

TEOREMA DE KLEENE. SOLUCIN AL


TEOREMA DE ANLISIS
Una vez que se obtienen los sistemas de ecuaciones para cada
estado, se debe intentar resolver las ecuaciones de cada
estado, de manera que tenga la forma xi =Axi + B donde
A, xi B que es a lo que se denomina
ecuaciones
caractersticas.
Para
cada estado en el que se tenga
despejado xi asi la solucin es xi =A * B. Al efecto de que se
cumpla A, lo mas sencillo es eliminar las transiciones del
autmata, cuando sea no determinista.
8. Cuando se calcule el valor de x0
(ecuacin caracterstica del
estado inicial), esta E.R. es la que describe el lenguaje
aceptado por el autmata.
7.

TEOREMA DE KLEENE. SOLUCIN AL


TEOREMA DE ANLISIS

Ejemplo: Sea el AFD

Se crea las ecuaciones caractersticas para cada estado:


1.

x0= 0x0+ 1x1+1

2.

x1= 0x0+ 1x2

3.

x2= 0x2+ 1x1+1

TEOREMA DE KLEENE. SOLUCIN AL


TEOREMA DE ANLISIS

Resolvemos aplicando la regla de inferencia


X=X+ X=*
comenzando por la ecuacin

(3) :x2= 0*(1x1+1)=0*1x1+0*1


Sustituyendo en
(2):x1= 0x0+ 10*1x1+10*1=10*1x1+ 0x0 +10*1=

=(10*1)*(0x0+ 10*1)= (10*1)*0x0+ (10*1)*10*1

TEOREMA DE KLEENE. SOLUCIN


AL TEOREMA DE ANLISIS
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)*
expresin regular que describe el lenguaje L(M).
(aplicando las propiedades:(ab*b+a )=a(b*b+)=ab*)

PREGUNTAS
1.
2.
3.
4.
5.
6.
7.
8.
9.

Cuales son los pasos para pasar de un AFND a


AFD.
Cuales son los pasos para pasar de un AFD a una
G3
Cuales son los pasos para pasar de una G3 a un
AFD o AFND
Defina Expresin Regular, de un ejemplo
Donde se utilizan las E. R.
Que tipos de smbolos aparecen en las E.R
Escriba las propiedades de clausura de las E.R
Defina el Teorema de kleene
Cual es la solucin para el Teorema de sntesis

Das könnte Ihnen auch gefallen