Está en la página 1de 4

EJERCICIOS: COMPUTACIÓN

DAVID CAMILO MOLANO VALBUENA

1. Ejercicios Capítulo 2
Ejercicio 1. Dar un autómata finito no determinista que acepte el
lenguaje que consiste de todas las cadenas sobre {a, b, c} que tienen
el mismo valor cuando son evaluadas de izquierda a derecha y de
derecha a izquierda, multiplicando como en la tabla:
a b c
a a a c
b c a b
c b c a
Lema 2. Sea L un lenguaje regular y M un autómata que acepte L. Sea
LR = {R(a) : a ∈ L} donde R(a1 a2 · · · am−1 am ) = am am−1 · · · a2 a1 .
Entonces LR también es regular.
Demostración. Supongamos que M = (Q, Σ, δ, q0 , {f}) es determinista
y tiene un solo estado final (lo primero por el algoritmo NFA to
DFA, y lo segundo porque si no, podemos añadir un nuevo estado
f 0 y transiciones  de cada estado final de M en f 0 ), y sea MR =
(Q, Σ, δR , f, {q0 }) el autómata no determinista tal que para q, q 0 ∈ Q
y a ∈ Σ, q ∈ δR (q 0 , a) si y solo si q 0 ∈ δR (q, a). Entonces una palabra
a es aceptada por M si y solo si R(a) es aceptada en MR .
En efecto, si a = a1 . . . am ∈ L(M), entonces hay estados q0 , . . . , qm =
f tales que para cada i ∈ {1, . . . , m}, δ(qi−1 , ai ) = qi . Eso significa
que qi−1 ∈ δR (qi , ai ), para cada i. En particular q0 ∈ δR (q1 , a1 ) y
qm−1 ∈ δR (f, am ). Esto quiere decir que la palabra R(a) = am . . . a1
parte del estado inicial f de MR y termina en un su estado de acepta-
ción. Por lo tanto, si a es aceptada por M entonces R(a) es aceptada
por MR . El recíproco se sigue de que si una palabra a es aceptada
por MR entonces R(a) es aceptada por (MR )R = M (porque MR re-
sulta de M al cambiar la dirección de todas las flechas y al cambiarlas
dos veces regresamos a M).
Se sigue que MR acepta a LR y que LR es regular. 
Date: 15 de abril de 2021.
1
2 DAVID CAMILO MOLANO VALBUENA

Observación 3. En el libro se presenta un autómata para la intersec-


ción de dos lenguajes regulares. Si L1 , L2 son lenguajes con autómatas

M1 = (Q1 , Σ, δ1 , q1 , F1 ), M2 = (Q2 , Σ, δ2 , q2 , F2 )

que los aceptan respectivamente entonces el producto cartesiano

M1 × M2 = (Q1 × Q2 , Σ, δ1 × δ2 , (q1 , q2 ), F1 × F2 )

acepta L1 ∩ L2 , donde δ1 × δ2 (q, r, a) = (δ1 (q, a), δ2 (r, a)) para cada
a.
La misma construcción funciona para autómatas no deterministas
con la única diferencia de que, para q, r, δ1 × δ2 (q, r, a) = δ1 (q, a) ×
δ2 (r, a).
La validez de esta construcción es que la manera en que el produc-
to cartesiano de M1 y M2 corre una palabra a, es haciéndola correr
por medio de ambos autómatas y llegando a un estado de acepta-
ción si en ambos autómatas se llega a un estado de aceptación. Por
lo tanto el lenguaje aceptado por el producto cartesiano consiste de
las palabras que son aceptadas por ambos... la intersección.

Solución del Ejercicio. Consideremos La , Lb , Lc los lenguajes de las


palabras que al evaluar dan a, b, c respectivamente al multiplicar
como en la tabla, de izquierda a derecha. Estos tienen autómatas que
salen de la tabla fácilmente, viendo la primera columna como estados
y la primera fila como transiciones:

b
c
a
c

a
c

b
a b
b
a

Lo modificamos como sigue:


EJERCICIOS: COMPUTACIÓN 3

b
c

a
c
a
c
c

b
a b
a b
b
a

c
donde  es el estado inicial. Para construir Ma que acepte La po-
nemos a como el estado final, para construir Mb que acepte Lb
ponemos b como el estado final, y para construir Mc que acepte Lc
ponemos c como el estado final.
Ahora, vía el lema 2, tenemos autómatas MRa , MRb , MRc para LRa , LRb , LRc
que resultan de Ma , Mb , Mc revirtiendo todas las flechas y permu-
tando el estado final con el inicial. Para x ∈ {a, b, c}, Lx ∩ LRx consiste
de las palabras que al operar de izquierda a derecha, y de derecha a
izquierda den como resultado x, y por lo tanto el lenguaje de todas
las palabras que den el mismo resultado al operar de izquierda a
derecha que de derecha a izquierda consiste de:

(La ∩ LRa ) ∪ (Lb ∩ LRb ) ∪ (Lc ∩ LRc ).

Un autómata M que lo acepte está dado por:

Ma × MRa


q2 Mb × MRb q3
 


q0 Mc × MRc q1
 

Inicio
4 DAVID CAMILO MOLANO VALBUENA

donde para cada x ∈ {a, b, c} las transiciones  que van a Mx × MRx


van en realidad a su estado inicial, y las transiciones  que salen de
Mx × MRx en realidad salen de su estado final. Que es básicamente el
autómata dado por el algoritmo (de Thompson) para dar un autómata
dada una expresión regular (en este caso usando la unión dos veces).

Observación 4. A primera vista, el autómata

Ma × MRa


Inicio q q3
2 Mb × MRb
 



Mc × MRc

también aceptaría el lenguaje. Aparte, se podría usar el algoritmo


correspondiente para remover todas las transiciones .
Ejercicio 5. Sea h(0) = aa y h(1) = aba. Entonces h−1 (ab + ba)∗ a)
consiste solo de la cadena 1.
Demostración. Sea s una cadena en L = (ab + ba)∗ a.
Entonces s ∈ {(ab)i a, (ba)j a : i, j > 0}. Supongamos primero que
s = (ba)j a. Si j = 0 entonces claramente no hay t ∈ {0, 1}∗ tal que
h(t) = s. Supongamos que j > 0. Sea t ∈ {0, 1}∗ y supongamos que
h(t) = s. Como s termina en baa, i.e. s = (ba)i−1 baa, entonces t
termina en 0, i.e. t = t 0 0 donde t 0 ∈ {0, 1}∗ . Pero eso quiere decir que
h(t 0 ) = (ba)i−1 b, lo cual es imposible, ya que ninguna imagen bajo
h termina en b.
Ahora supongamos que s = (ab)i a. Si i = 0 entonces no existe t
tal que h(t) = s. Supongamos que i > 0. Sea t ∈ {0, 1}∗ y supon-
gamos que h(t) = s. Como s termina en aba, i.e. s = (ab)i−1 aba
entonces t termina en 1, i.e. t = t 0 1 y h(t 0 ) = (ab)i−1 . Pero similar
al razonamiento anterior, si i − 1 6= 0 entonces t 0 no puede existir,
por lo que i = 1 y s = aba, de lo que se sigue que t = 1. 

También podría gustarte