tema 5. gramÁticas regulares. - uhuuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. ·...

29
TALF. Tema5 nº 1 TEMA 5. GRAMÁTICAS REGULARES. 5.1. Gramáticas Regulares. 5.2. Autómatas finitos y gramáticas regulares. 5.2.1. Gramática regular asociada a un AFD 5.2.2. AFD asociado a una Gramática regular 5.3. Expresiones regulares. 5.3.1. Lenguaje de las expresiones regulares. 5.3.2. Álgebra de las expresiones regulares. 5.3.3. Teorema fundamental. 5.4. Autómatas finitos y expresiones regulares. 5.4.1. AFN asociado a una expresión regular 5.4.2. expresión regular asociada a un AF

Upload: others

Post on 10-Sep-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 1

TEMA 5. GRAMÁTICAS REGULARES.

5.1. Gramáticas Regulares.

5.2. Autómatas finitos y gramáticas regulares.

5.2.1. Gramática regular asociada a un AFD

5.2.2. AFD asociado a una Gramática regular

5.3. Expresiones regulares.

5.3.1. Lenguaje de las expresiones regulares.

5.3.2. Álgebra de las expresiones regulares.

5.3.3. Teorema fundamental.

5.4. Autómatas finitos y expresiones regulares.

5.4.1. AFN asociado a una expresión regular

5.4.2. expresión regular asociada a un AF

Page 2: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 2

5.1. gramáticas regulares.

Sin restricciones o de Tipo 0

Sin restricciones o de Tipo 0

Máquina de Turing

Sensible al contexto o de Tipo

1

Sensible al contexto o de Tipo

1

Autómata linealmente

acotado

Libre de contexto o de Tipo 2

Libre de contexto o de Tipo 2

Autómata a pila

Regular o de Tipo 3

Regular o de Tipo 3

Autómata Finito

Gramáticas Lenguajes Máquinas

Page 3: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 3

5.1. gramáticas regulares.

Gramáticas Tipo 3

(Gramáticas regulares o de estado finito)

Sus producciones son de la forma:

Lineal por la derecha:

AaB o Aa, donde A,B N , a T

Lineal por la izquierda:

ABa o Aa, donde A,B N , a T

Se permiten producciones de la forma S

Los lenguajes representados por este tipo de gramáticas se denominan

lenguajes regulares.

Ejemplos:

G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0}) Gramática lineal por la

izquierda que describe el lenguaje L1 = { 1, 101, 10101, ... } = {1(01)n | n

= 0, 1, 2, ...}

G2 = ({ 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A}) Gramática lineal

derecha que genera el mismo lenguaje que la gramática anterior.

Page 4: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 4

5.1. gramáticas regulares.

Para cada Gramática lineal por la derecha existe una Gramática lineal izquierda que genera el mismo lenguaje y viceversa.

Algoritmo:

1. Se transforma la gramática de forma que no haya ninguna regla en cuya parte derecha esté el axioma. Para lo cual:

1. Se crea un nuevo S´ N

2. regla S::=x (con S axioma y x *) se crea una nueva regla S´::=x.

3. Cada regla A::=xSy, se transforma en A::=xS´y.

2. Se crea un grafo G dirigido:

1. A N {} se crea un nodo.

2. producción (A::=aB) P se crea un arco etiquetado con a que va del nodo A al B.

3. producción (A::=a) P se crea un arco etiquetado con a que va del nodo A al (F).

4. Si S::= se crea un arco sin etiqueta que va del nodo del axioma al nodo .

3. Se crea otro grafo G´a partir de G:

1. Se intercambian las etiquetas del axioma y .

2. Se invierte la dirección de todos los arcos.

4. Se transforma en un conjunto de reglas:

1. nodo, se crea un símbolo no terminal excepto para el nodo .

2. arco etiquetado con a que va del nodo A al nodo B N {}, se crea una producción A::=Ba.

3. Si un arco del nodo del axioma al nodo se crea una regla S::=.

El algoritmo para el paso inverso es similar al descrito.

Page 5: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 5

5.1. gramáticas regulares.

Ejemplo: Gramática lineal derecha:

G1 = ({ 0, 1}, {A, B}, A, { A::=1B | , B::=0A, B::=0})

1. Se transforma la gramática para que no haya regla como: B::=0A

1. Se crea un nuevo A´

2. Se crean las reglas A´::=1B | .

3. Se crea la regla B::=0A´.

4. Se borra la regla B::=0A.

La Gramática resultante es:

G11 = ({ 0, 1}, {A, B, A´}, A, { A::=1B | , A´::=1B | , B::=0A´, B::=0})

Se elimina A´::= quedando:

G12 = ({ 0, 1}, {A, B, A´}, A, { A::=1B | , A´::=1B, B::=0A´, B::=0})

Page 6: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 6

5.1. gramáticas regulares.

1. Se crea un grafo G que representa las transiciones de esta gramática.

2. Se crea el grafo G´invirtiendo G:

A´ A

01

B0

1

A

1

B0

1

0

3. Se transforma en un conjunto de reglas, en la Gramática lineal por la izquierda equivalente:

G2 = ({ 0, 1}, {A, B, A´}, A, { A ::= B0 | , A´::= B0, B ::= A´1, B::=1})

G12 = ({ 0, 1}, {A, B, A´}, A, { A::=1B | , A´::=1B, B::=0A´, B::=0})

Page 7: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 7

5.1. gramáticas regulares.

Para cada Gramática lineal por la izquierda existe una Gramática lineal derecha que genera el mismo lenguaje y viceversa.

Algoritmo:1. Se transforma la gramática de forma que no haya ninguna regla en cuya parte

derecha esté el axioma. Para lo cual:1. Se crea un nuevo S´ N

2. regla S::=x (con S axioma y x *) se crea una nueva regla S´::=x.3. Cada regla A::=xSy, se transforma en A::=xS´y.

2. Se crea un grafo G dirigido:1. A N {F} se crea un nodo.2. producción (A::=Ba) P se crea un arco etiquetado con a que va del nodo A al

B.3. producción (A::=a) P se crea un arco etiquetado con a que va del nodo A al

F.4. Si S::= se crea un arco con etiqueta que va del nodo del axioma al nodo F.

3. Se crea otro grafo G´a partir de G:1. Se intercambian las etiquetas del axioma y F.2. Se invierte la dirección de todos los arcos.

4. Se transforma en un conjunto de reglas:1. nodo, se crea un símbolo no terminal excepto para el nodo F.2. arco etiquetado con a que va del nodo A al nodo B N {F}, se crea una

producción A::=aB.3. Si un arco etiquetado con del nodo del axioma al nodo F se crea una regla

S::=.

Page 8: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 8

5.1. gramáticas regulares.

Ejemplo: Gramática lineal izquierda:

G1 = ({ 0, 1}, {A, B}, A, { A::=B1 | 1 , B::=A0})

1. Se transforma la gramática para que no haya regla como: B::=A0

1. Se crea un nuevo A´2. Se crean las reglas A´::=B1 | 13. Se crea la regla B::=0A´04. Se borra la regla B::=A0

La Gramática resultante es:

G11 = ({ 0, 1}, {A, B, A´}, A, { A::=B1 | 1, A´::=B1 | 1 , B::=A´0})

2. Grafo G para las transiciones de la gramática.

A

F

01

B

1

1

1

1

3. Se crea el grafo G´invirtiendo G:

F

A

01

B

1

1

1

1

4. Se transforma en las reglas, de la Gramática lineal por la derecha equivalente:

G2 = ({ 0, 1}, {A, B, A´}, A, { A ::= 1A´ | 1 , A´::= 0B, B ::= 1A´ | 1})

Page 9: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 9

5.2. Autómatas finitos y gramáticas regulares.

5.2.1. Gramática regular asociada a un AFD

Si L es aceptado por un AFD entonces L puede generarse

mediante una gramática regular.

Sea M=(Q, ,f,q0,F), la gramática regular equivalente es

aquella definida como G=(Q, , P, q0), donde P viene

dado por:

Si f(q,a)=p entonces añadir a P la producción qap.

Si f(q,a)=p y pF entonces añadir a P la producción qa.

Si q0F entonces añadir a P la producción q0

Page 10: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 10

5.2. Autómatas finitos y gramáticas regulares.

Ejemplo: De AFD a Gramática regular:Dado un lenguaje regular L reconocido por un AFD M=(Q, ,f,q0,F), se puede obtener una gramática regular G=(N , T, S, P), que genere el mismo lenguaje de la siguiente forma:

N =Q

T =

S=q0

P={(q,ap)|f(q,a)=p}{(q0,)|p,q0F}

Ej.- Considera el siguiente DFA que acepta el lenguaje a*b:

La gramática será: q0 aq0|bq1|b q1 aq2|bq2

q2 aq2|bq2

q0 q1q2

a

b a,ba,b

Page 11: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 11

5.2. Autómatas finitos y gramáticas regulares.

5.2.2. AFD asociado a una Gramática regular

Si L es un lenguaje generado por una gramática regular,

entonces existe un AFD que lo reconoce:

Sea la gramática regular G=(N , T ,P , S), se construye

el AFND- equivalente como M=(N {F}, T ,f,S,{F}),

donde f viene dado por:

Si AaB entonces f(A,a)=B

Si Aa entonces f(A,a)=F

Si S entonces f(S, )=F

F es un “nuevo” símbolo no terminal.

Convertir el AFND- obtenido a un AFD.

Page 12: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 12

5.2. Autómatas finitos y gramáticas regulares.

Ejemplo: De Gramática regular a AFN:Dado un lenguaje regular L generado por una gramática regular G=(N , T, S, P) , se puede obtener un AFD M=(Q, ,f,q0,F) que reconozca el mismo lenguaje de la siguiente forma:

Q= N {F},

=T

q0 =S

Ej.- Considera la siguiente gramática: S aS|b que acepta el lenguaje a*b:

El AFD equivalente:

S F

a

b

Page 13: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 13

5.3. 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.

Los usos más habituales de las expresiones regulares son en la creación 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.

Page 14: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 14

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:

1. Paréntesis ( )2. Clausura *3. Concatenación ·4. Unión +

A cada expresión 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(α)*

5.3.1. Lenguaje de las expresiones regulares.

Page 15: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 15

Definiciones regulares

Son nombres dados a las expresiones regulares.

Una definición regular es una secuencia de definiciones de la forma:

d1 r1

d2 r2

…..

dn rn

Donde cada di es un nombre distinto y cada ri una expresión regular sobre los símbolos del alfabeto {d1, d2,..,dn}

Ejemplo:definición regular para identificadores en Pascal:

letra A|B|…|Z|a|b|…|z

digito 0|1|…|9

id letra(letra|digito)*

Abreviaturas en la notación

Uno o más casos: operador unitario posfijo +

Cero o un caso: operador unitario posfijo ?

Clases de caracteres: [abc]

Ejemplos:

digitos digito+

Exponente_opcional (E(+|-)?digitos)?

5.3.1. Lenguaje de las expresiones regulares.

Page 16: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 16

5.3.1. Lenguaje de las expresiones regulares.

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…}

Page 17: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 17

5.3.2. Álgebra de las expresiones regulares.

Propiedades de la Unión: asociativo: α+ (β+γ ) = (α+β ) +γ conmutativo: α+β=β+α elemento neutro la expresión vacía: + α = α + =α idempotente: α+α =α

Propiedades de la concatenación: asociativo: α (βγ ) = (αβ )γ no es conmutativo: αβ≠ βα elemento neutro la expresión lambda: λα=αλ=α Tiene como elemento anulador la expresión vacía: α =α = distributivo respecto al operador de unión: α (β+γ ) =αβ+αγ

Propiedades de la clausura: λ*=λ *=λ α *=λ+ αα* αα*=α*α (α*+β*)* = (α+β )* (α+β)* = (α*β*)*

Page 18: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 18

5.3.3. Teorema fundamental.

El Teorema servirá para describir mediante una expresión regular el

lenguaje reconocido por un autómata.

El objetivo del teorema fundamental es resolver sistemas de ecuaciones en el dominio de las expresiones regulares que tienen la

forma siguiente: X=αX+β

El teorema se divide en dos partes que nos permiten obtener la solución a esta ecuación en los casos en que λL(α) y aquellos en los que λ∉L(α) , respectivamente.

Regla General:

Teorema. Sean α y β dos expresiones regulares de forma que λL(α). En estas condiciones, la solución a la ecuación X=αX+β es de la forma X=α*(β+γ ) en donde γ representa

cualquier expresión regular.

Regla de Inferencia:

Teorema. Sean α y β dos expresiones regulares de forma que λ∉ L(α). En estas condiciones,

X=αX+β X=α*β

Page 19: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 19

5.4. 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.

Todo lenguaje definido por una expresión regular es definido por un autómata finito.

AFND- AFND

ER AFD

Page 20: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 20

5.4.1. AFN asociado a una expresión regular

Cada lenguaje definido por una expresión regular es también definido por un autómata finito.

La demostración es inductiva sobre el número de operadores de α (+, . *).

Base.- (cero operadores)

Α puede ser , , a, donde a T

Expresión regular α Autómata

a a

Page 21: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 21

5.4.1. AFN asociado a una expresión regular

Inducción.- (uno o más operadores en α)

Suponemos que se cumple la hipótesis para expresiones regulares de menos de n operadores.

Por hipótesis existen dos AF M1 y M2 tal que que acepta el mismo lenguaje L(M1)=L(α1 ) y L(M2)=L(α2 ) donde:

q1 f1

M1

q2 f2

M2

Page 22: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 22

5.4.1. AFN asociado a una expresión regular

Suponemos que tenemos una expresión regular α con n operadores.

Vamos a construir el autómata M tal que L(M)=L(α).

Distinguimos tres casos correspondientes a las tres formas posibles de expresar α en función de otras expresiones regulares con menos de n operadores :

1. α = α1 + α2 tal que op(α1), op(α2) < n

2. α = α1 . α2 tal que op(α1), op(α2) < n

3. α = (α1)* tal que op(α1) = n-1

Page 23: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 23

5.4.1. AFN asociado a una expresión regular

1. α = α1 + α2 tal que op(α1), op(α2) < n

A partir de M1 y M2 construimos otro autómata M (la unión), el autómata que acepta el mismo lenguaje es:

M1

M2

q1

q2

f0q0

f1

f2

Page 24: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 24

5.4.1. AFN asociado a una expresión regular

2. α = α1 . α2 tal que op(α1), op(α2) < n

A partir de M1 y M2 construimos otro autómata M (la concatenación), el autómata que acepta el mismo lenguaje es:

M1 M2q1 q2 f2f1

Page 25: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 25

5.4.1. AFN asociado a una expresión regular

3. α = (α1)* tal que op(α1) = n-1

A partir de M1 construimos otro autómata M (la clausura), el autómata que acepta el mismo lenguaje es:

M1q1 f0q0

f1

Page 26: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 26

5.4.1. AFN asociado a una expresión regular

Ejemplo: AF construído 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

M1

q1

0q2

M3

q7

1q8

M2

1q3 q6q5

q4

1

q1

q7f0

q0

q6

q8

q20

q5 q3 q4

1

Page 27: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 27

5.4.2. expresión regular asociada a un AFD

Si L es un lenguaje aceptado por un autómata finito M entonces existe una expresión regular tal que L = L(M) = L(). Podemos suponer que el autómata finito M no tiene -transiciones. Si

las tuviera, podemos encontrar autómata equivalente sin -transiciones

Sea M = (Q, , f, q0, F). A partir de su diagrama de transición podemos obtener un sistema de ecuaciones de expresiones regulares (ecuaciones características del autómata): A cada nodo qi le corresponde una ecuación y cada estado se

puede considerar como una incógnita xj de la ecuación. La ecuación para el estado qi tiene en el primer miembro el estado

qi, xi, y en el segundo miembro una suma de términos, de forma que por cada arco del diagrama de la forma qi →qj tenemos un término axj .

Si el estado qi es final, añadimos el termino a al segundo miembro. Si el estado q0 es final, añadimos el termino al segundo miembro

para x0.

Cada incógnita para qi, xi,representa el conjunto de palabras que llevan de qi a un estado final.

Resolviendo el sistema de las ecuaciones tendremos soluciones de la forma xi = i, donde i es una expresión regular sobre el alfabeto

El lenguaje descrito por esta expresión regular es:L(i) = {w ∗ | (qi,w) ⊢∗ (qF , ) , qF F} (1)

a

Page 28: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 28

5.4.2. expresión regular asociada a un AFD

El método para obtener una expresión regular a partir de un AF es el

siguiente:

1. Obtener las ecuaciones características del autómata.

2. Resolver el sistema de ecuaciones

3. ← 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.

Page 29: TEMA 5. GRAMÁTICAS REGULARES. - UHUuhu.es/francisco.moreno/talf/docs/tema5.pdf · 2011. 4. 12. · TALF. Tema5 nº 3 5.1. gramáticas regulares. Gramáticas Tipo 3 (Gramáticas regulares

TALF. Tema5 nº 29

5.4.2. expresión regular asociada a un AFD

Ejemplo. Sea el AF:

q0 q1 q2

0

1 1 0

0 1 Ecuaciones características:

1. x0= 0x0+ 1x1+1

2. x1= 0x0+ 1x2

3. 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

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*)