i) Sean L1 libre de contexto y L2 regular, entonces L3 = L1 L2 es libre de contexto. VERDADERO. Se dará una idea de la construcción de un APD M3 / L3 = L(M3) aunque no la demostración formal de que ese autómata reconoce efectivamente L3. Sea M1 / L1 = L(M1) ; M1 = (QM , Σ, Γ, δM , q0 , Z0 , FM ) y sea M2 / L2 = L(M2) ; M2 = (QA , Σ, δA , p0 , FA ). Se construye un APD M3 / L3 = L(M3) que “corre en paralelo M1 y M2”. M3 simula movimientos en M1 con entrada epsilon sin cambiar el estado de M2. Cuando M3 hace un movimiento con entrada a, M1 simula el movimiento y también simula a M2 con cambios de estado con esa entrada a. M3 acepta si y sólo si ambos autómatas M1 y M2 aceptan. Formalmente, se define entonces M3 = (QA × QM , Σ, Γ, δ, [p0,q0], Z0 , FA × FM ) donde δ es definido por δ([p, q], a, X), contiene ([p', q'], γ) si y sólo si δA (p, a) = p' y δM (q, a, X) contiene (q', γ). Notar que a puede ser epsilon, en cuyo caso p' = p
Re: examen febrero 2017 ejercicio 4b
hola matilde:
la verdad es que, lamentablemente, no quedó muy bien tu correo. creo adivinar que tu pregunta refiere a la intersección de un lenguaje libre de contexto y otro regular.
en ese caso, efectivamente, la idea es simular la ejecución de ambas máquinas al mismo tiempo, creando estados que representen dónde se estaría en cada autómata a un momento dado del procesamiento de la tira. como el AFD no tiene stack, esa parte es simplemente la misma del APD.
a modo de ejemplo, supongamos que, leyendo una letra a de la entrada:
- el AFD iba de q0 a q1
- el APD iba de p0 a p1, apilando una X en el stack cuando estaba el tope Zo
para simular consumir la primera "a", en el autómata resultante se tiene que:
- desde [qo,po] con la letra a y tope Zo, se va al estado [q1,p1], apilando X en el stack.
en otras palabras:
g([q0,p0], a, Zo) = ([q1,p1], XZo)
esto modela moverse en ambos autómatas al consumir una letra. lo que escribiste simplemente formaliza esta idea.
espero se entienda.
saludos,
d.-
Re: examen febrero 2017 ejercicio 4b
muchas gracias! era eso si saludos!