2
$&(3725’((67$’26),1,726&2175$16,&,21(6O$()O Un aceptor de estados finitos con transiciones λ (AEF-λ) es un aceptor no-determinístico M = (Q, S, P, Ι, F) en el que la relación de transición está definida como: P: Q x (S {λ}) (Q) [1] La transición P(q, λ) = {q’ 1 , …, q’ n }, llamada transición λ o transición nula, tiene el siguiente significado: estando en el estado q, la máquina puede cambiar a uno cualquiera de los estados q’ 1 , …, q’ n independientemente del símbolo leído. Dicho de otra manera, las transiciones λ permiten al autómata cambiar de estado sin leer ningún símbolo de la entrada. En el diagrama de estados, las transiciones λ dan lugar a arcos rotulados con λ. Una cadena de entrada ϖ es aceptada por un AEF-λ si existe por lo menos un camino cuyos rótulos son exactamente los símbolos de ϖ, intercalados con cero, una o más λs. El modelo AEF-λ, al igual que el AEF no determinístico, permite múltiples secuencias de estados admisibles para un mismo string de entrada, así como secuencias de estados que no finalizan. Pero, a diferencia de los AEF determinísticos y no determinísticos, en los AEF-λ pueden existir “secuencias de estados infinitas”, es decir secuencias que nunca terminan. (MHPSOR Los AEF-λ permiten aún más libertad en el diseño de autómatas, especialmente cuando hay numerosas concatenaciones. (MHPSOR El siguiente AEF acepta el lenguaje L=a*b*c*: El siguiente AEF-λ acepta el mismo lenguaje: El AEF-λ se asemeja a la expresión regular a*b*c*: las concatenaciones han sido reemplazadas por transiciones λ. (MHPSOR Sea S = {a, b} y L = {ϖ S* / ϖ tiene un número par de a’s o un número par de b’s} AEF determinístico que acepta strings con un número par de a’s: AEF determinístico que acepta strings con un número par de b’s: AEF-λ que acepta strings con un número par de a’s o un número par de b’s: (MHUFLFLRV Diseñar AEF-λ que acepten los siguientes lenguajes: 1. (ab b)* ab* 2. a(a c)*b + 3. ab* ba* b(ab ba)* 4. ab*ba*b(ab ba)* 5. (0 010)*0*(01 10)* 6. 0 + 1(010)*(01 10)*1 + [1] (Q) denota el conjunto de todos los subconjuntos de un conjunto dado Q y es llamado conjunto potencia (o conjunto de partes) de Q; luego, la relación de transición P así definida asocia a cada par (estado, símbolo de entrada o λ) un subconjunto de estados sucesores, incluído el conjunto vacío.

AEF-con Transiciones Lambda.pdf

Embed Size (px)

Citation preview

Page 1: AEF-con Transiciones Lambda.pdf

$&(3725�'(�(67$'26�),1,726�&21�75$16,&,21(6�O��$()�O��

Un aceptor de estados finitos con transiciones λ (AEF-λ) es un aceptor no-determinístico M = (Q, S, P, Ι, F) en el que la relación de transición está definida como:

P: Q x (S ∪ {λ}) → ℘(Q) [1]

La transición P(q, λ) = {q’1, …, q’n}, llamada transición λ o transición nula, tiene el siguiente significado: estando en el estado q, la máquina puede cambiar a uno cualquiera de los estados q’1, …, q’n independientemente del símbolo leído. Dicho de otra manera, las transiciones λ permiten al autómata cambiar de estado sin leer ningún símbolo de la entrada.

En el diagrama de estados, las transiciones λ dan lugar a arcos rotulados con λ. Una cadena de entrada ω es aceptada por un AEF-λ si existe por lo menos un camino cuyos rótulos son exactamente los símbolos de ω, intercalados con cero, una o más λs.

El modelo AEF-λ, al igual que el AEF no determinístico, permite múltiples secuencias de estados admisibles para un mismo string de entrada, así como secuencias de estados que no finalizan. Pero, a diferencia de los AEF determinísticos y no determinísticos, en los AEF-λ pueden existir “secuencias de estados infinitas”, es decir secuencias que nunca terminan.

(MHPSOR���

Los AEF-λ permiten aún más libertad en el diseño de autómatas, especialmente cuando hay numerosas concatenaciones.

(MHPSOR��� El siguiente AEF acepta el lenguaje L=a*b*c*: El siguiente AEF-λ acepta el mismo lenguaje:

El AEF-λ se asemeja a la expresión regular a*b*c*: las concatenaciones han sido reemplazadas por transiciones λ.

(MHPSOR��� Sea S = {a, b} y L = {ω ∈ S* / ω tiene un número par de a’s o un número par de b’s}

AEF determinístico que acepta strings con un número par de a’s:

AEF determinístico que acepta strings con un número par de b’s:

AEF-λ que acepta strings con un número par de a’s o un número par de b’s:

(MHUFLFLRV� Diseñar AEF-λ que acepten los siguientes lenguajes:

1. (ab ∪ b)* ab*

2. a(a ∪ c)*b+

3. ab* ∪ ba* ∪ b(ab ∪ ba)*

4. ab*ba*b(ab ∪ ba)*

5. (0 ∪ 010)*0*(01 ∪ 10)*

6. 0+1(010)*(01 ∪ 10)*1+

[1]℘(Q) denota el conjunto de todos los subconjuntos de un conjunto dado Q y es llamado conjunto potencia (o conjunto de partes) de Q; luego, la relación de transición P así definida asocia a cada par (estado, símbolo de entrada o λ) un subconjunto de estados sucesores, incluído el conjunto vacío.

Page 2: AEF-con Transiciones Lambda.pdf

(48,9$/(1&,$�(175(�/26�$()�O�<�/26�$()�12�'(7(50,1Ë67,&26�

A continuación se mostrará que el modelo AEF-λ es computacionalmente equivalente al modelo AEF no determinístico. O dicho más gráficamente, las transiciones λ se pueden eliminar, añadiendo transiciones que las simulen, sin alterar el lenguaje aceptado.

En primer lugar, un AEF no determinístico M = (Q, S, P, Ι, F) puede ser considerado como un AEF-λ en el que, simplemente, hay cero transiciones λ. Para la afirmación recíproca tenemos el siguiente teorema:

7HRUHPD� Dado un AEF-λ M = (Q, S, P, Ι, F), se puede construir un AEF no determinístico M’ equivalente a M, es decir, tal que L(M) = L(M’).

3URFHGLPLHQWR�GH�FRQVWUXFFLyQ� Para construir M’ a partir de M se requiere la noción de O�FODXVXUD de un estado. Para un estado q ∈ Q, la λ-clausura de q, simbolizada λ[q], es el conjunto de estados de M a los que se puede llegar desde q por 0, 1 o más transiciones λ. Nótese que, en general, λ[q] � P(q, λ).

Por definición, q ∈ λ[q]. Además, λ[∅] = ∅.

λ[q] = {q} ∪ {q’ ∈ Q / q … q’ en M}

También se puede definir:

λ[q] = {q} ∪ λ[q’] ∀ q’ ∈ P(q, λ)

La λ-clausura de un conjunto de estados {q1, …, qk} se define por:

λ[{q1, …, qk}] = λ[q1] ∪ … ∪ λ[qk]

Sea M’ = (Q, S, P’, Ι, F’) donde

P’: Q x S → ℘(Q) es tal que P’(q, s) = λ[P(λ[q], s)]

M’ simula así las transiciones λ de M teniendo en cuenta todos los posibles caminos.

F’ se define como:

F’ = {q ∈ Q / λ[q] ∩ F ��∅}

Es decir, los estados de aceptación de M’ incluyen los estados de aceptación de M y aquellos estados desde los cuales se puede llegar a un estado de aceptación por medio de una o más transiciones λ.

(MHPSOR��� Vamos a aplicar el procedimiento de transformación a la máquina M :

Las λ-clausuras de los estados vienen dadas por:

λ[q2] = {q2}

λ[q1] = {q1} ∪ λ[q2] = {q1, q2}

λ[q0] = {q0} ∪ λ[q1] = {q0, q1, q2}

La función de transición P’: Q × {a, b, c} → ℘({q0, q1, q2}) es:

P’(q0, a) = λ [P(λ[q0], a)] = λ [P({q0, q1, q2}, a)] = λ [{q0}] = {q0, q1, q2}

P’(q0, b) = λ [P(λ[q0], b)] = λ [P({q0, q1, q2}, b)] = λ [{q1}] = {q1, q2}

P’(q0, c) = λ [P(λ[q0], c)] = λ [P({q0, q1, q2}, c)] = λ [{q2}] = {q2}

P’(q1, a) = λ [P(λ[q1], a)] = λ [P({q1, q2}, a)] = λ [∅] = ∅

P’(q1, b) = λ [P(λ[q1], b)] = λ [P({q1, q2}, b)] = λ [{q1}] = {q1, q2}

P’(q1, c) = λ [P(λ[q1], c)] = λ [P({q1, q2}, c)] = λ [{q2}] = {q2}

P’(q2, a) = λ [P(λ[q2], a)] = λ [P({q2}, a)] = λ [∅] = ∅

P’(q2, b) = λ [P(λ[q2], b)] = λ [P({q2}, b)] = λ [∅] = ∅

P’(q2, c) = λ [P(λ[q2], c)] = λ [P({q2}, c)] = λ [{q2}] = {q2}

El autómata M’ así obtenido es el siguiente:

(MHUFLFLRV� Construir AEF no determinísticos equivalentes a los siguientes AEF-λ:

λ λ

L(M) = a*b*c*