Preguntas tc
-
Author
fredy-soncco -
Category
Education
-
view
84 -
download
1
Embed Size (px)
Transcript of Preguntas tc
PREGUNTA: Sea L el lenguaje definido por el conjunto de cadenas del alfabeto = {a, b, c} que contienen al menos una a y al menos una b. Indicar cul de las siguientes afirmaciones es VERDADERA:
a) L es un lenguaje independiente del contexto no regular
b) L es un lenguaje regular y por tanto, es posible encontrar una expresin regular que lo reconozca
c) La definicin del lenguaje impone restricciones acerca del nmero de c's que deben contener las cadenas del lenguaje
RESPUESTA:la opcin correcta es la b).
Vamos a tratar de plantear un autmata finito que represente el lenguaje. Si lo logramos, ya sabremos que es una expresin regular.
Partimos de un estado inicial q0. Si en dicho estado se lee una c, el autmata se mantiene en q0. Si se lee una a el autmata pasa al estado q1 y si se lee una b el autmata pasa al estado q2. Si estando en q1 se lee una c una a, el autmata permanece en q1, mientras que si se lee una b el autmata pasa al estado de aceptacin q3. Si estando en q2 el autmata lee una b una c, el autmata permanece en q2, mientras que si lee una a pasa al estado de aceptacin q3. En q3 la lectura de a, b c hacen que se permanezca en q3.
Si queremos estar ms seguros lo dibujamos y lo probamos con diferentes cadenas.
Analizamos las opciones: a) es falsa porque dice que es un lenguaje no regular.
b) es verdadera pues como hemos visto es un lenguaje regular.
c) es falsa porque la definicin del lenguaje no dice nada acerca del nmero de cs que deben contener las cadenas del lenguaje.
ltima modificacin: 18 de Diciembre 2013, 09:58 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
gramtica y smbolo inicial de una gramticaRespuesta #21 :05 de Diciembre 2013, 08:12 PREGUNTA:Dada la siguiente gramtica, donde A es el smbolo inicial de la gramtica:
S -- > A1BA -- > 0A | B -- > 0B | 1B |
Indicar cul de las siguientes afirmaciones es VERDADERA:
a) La gramtica genera el lenguaje representado por la expresin regular 0*
b) La gramtica genera el lenguaje representado por la expresin regular 0*1 (0 + 1)*
c) La gramtica genera un lenguaje con un nmero finito de cadenas
d) Ninguna de las anteriores afirmaciones es verdadera
RESPUESTA:la opcin correcta es la a)
Tenemos que prestar atencin a cul es el smbolo inicial de la gramtica, normalmente S pero en este caso nos indican especficamente que es A. Por ello vamos a reescribir la gramtica comenzando con la regla asociada al no terminal A para evitar confundirnos.
A -- > 0A | B -- > 0B | 1B | S -- > A1B
Al analizar la gramtica con A como smbolo inicial vemos que B y S son smbolos inalcanzables, por tanto la gramtica se reduce a esta regla: A -- > 0A |
Esta gramtica es recursiva por la derecha y admite la cadena vaca dentro del lenguaje que genera. El lenguaje generado es , 0, 00, 000, 0000 que es lo mismo que la expresin regular 0*
Analizamos las posibles respuestas:a) es verdaderab) es falso, el smbolo 1 no aparece dentro del lenguajec) es falso, el nmero de cadenas que genera es infinitod) es falso
Pregunta sencilla pero donde mucha gente cometer la equivocacin de usar S como smbolo inicial de la gramtica. Prestar atencin!ltima modificacin: 18 de Diciembre 2013, 09:58 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
examen autmatas gramticas y lenguajesRespuesta #22 :06 de Diciembre 2013, 11:31 Con las ltimas diez preguntas hemos completado un examen, que normalmente consta de diez preguntas tipo test. Es conveniente que se trate de resolver el examen haciendo una simulacin de examen real, controlando el tiempo empleado y respondiendo todas las preguntas a la vez sin consultar ningn tipo de documentacin, y luego comprobar cmo nos hubiera ido en ese caso supuesto "real" y qu nota habramos sacado. Para quien quiera intentarlo, dejo el examen con enunciados completos en el archivo adjunto a este post (archivo jun13_1a_sem_A.pdf, pulsar sobre el nombre o icono para descargarlo estando logeado). Y continuamos...En lneanosferacento Avanzado Mensajes: 375
mquina ms simple para reconocer un lenguajeRespuesta #23 :07 de Diciembre 2013, 10:53 PREGUNTA:Sea el lenguaje L = {xnymzn: con n y m > 0, y con n m}. Cul es la mquina ms simple que puede reconocer este lenguaje?
a) Un autmata finito.
b) Un autmata a pila determinista.
c) Un autmata a pila no determinista.
d) Una mquina de Turing.
RESPUESTA:la opcin correcta es la d).
El lenguaje implica que el nmero de xs ha de ser igual al nmero de zs, y con al menos una y entre las xs y las zs. El nmero de xs y zs tiene que ser distinto al nmero de ys. El nmero mnimo de cualquier smbolo es 1.
Con estas premisas xyz no se acepta porque el nmero de ys tiene que ser distinto que el nmero de xs y de zs. Se aceptaran las siguientes cadenas:
xyyz, xyyyz, xyyyyyyyyyyyyz, xxyzz, xxxyzzz, xxxxyzz..zz, xxxyyzzz, etc.
Necesitamos contar, con lo cual ya sabemos que los autmatas finitos no podrn representar este lenguaje.
Ahora nos preguntamos, podr un autmata a pila reconocer este lenguaje? Necesitamos comprobar las siguientes restricciones:
a)Que el nmero de zs sea distinto al nmero de xb)Que el nmero de xs sea igual al nmero de zsc)Que tanto el nmero de xs como de ys sea al menos 1
Con un autmata a pila podemos contar algo aadiendo a la pila y comprobar la coincidencia con otra cosa desapilando, pero aqu esto no es suficiente, necesitaramos contar dos cosas: las xs y las ys, luego desapilar con las zs y verificar que las xs estn en distinto nmero que las ys. Esta capacidad de computacin podramos decir que necesita 2 pilas y est por encima de las posibilidades de un autmata a pila, sea determinista o no determinista, por lo que concluimos que la mquina ms simple para reconocer este lenguaje ha de ser una mquina de Turing.
Otra va para tratar de responder esta pregunta es usar el lema de bombeo para lenguajes independientes del contexto. El lenguaje xny2nznsera un subconjunto del lenguaje y por tanto debera ser un LIC si el lenguaje propuesto fuera un LIC. Supongamos que este lenguaje es un LIC. Entonces existe un valor constante n de forma que para z = xny2nzn se cumplira que:
z = uvwxy|vwx| 0} definido por la gramtica
S -- > xXX -- > xXX -- > yYY -- > yYY -- >
Podramos construir su forma normal de Chomsky?
a) Si.b) No.
RESPUESTA:la opcin correcta es la a).
Recordar que la FNC implica estas condiciones:
a) El lenguaje no genera la cadena vacab) Toda produccin es de tipo A -- > BC A -- > ac) La gramtica no tiene producciones ni producciones unitarias ni smbolos intiles.
Genera este lenguaje la cadena vaca? S ha de derivar en xX. Dado que X ha de derivar en xX yY llegamos a xxX xyY. Si derivamos Y a la cadena vaca tenemos que la cadena ms corta que se puede generar es xy. Por tanto el lenguaje no contiene la cadena vaca.
Nota: puede despistar el que haya una produccin que lleve a la cadena vaca, pero esto no significa que el lenguaje genere la cadena vaca.
Vamos a intentar ponerla en forma normal de Chomsky. Para ello en primer lugar eliminamos las producciones . Reemplazamos las producciones haciendo el reemplazo por todas las producciones alternativas posibles. La gramtica queda:
S -- > xXX -- > xXX -- > yY -- > yYY -- > y
En segundo lugar eliminaramos producciones unitarias tipo A -- > B pero como no tenemos pasamos al siguiente paso.
En tercer lugar eliminaramos smbolos intiles pero como no tenemos pasamos al siguiente paso.
Nos falta dejar la gramtica en la forma adecuada. Para ello introducimos variables adicionales como F -- > x as como G -- > y. La gramtica queda:
S -- > FXX -- > FXF -- > xX -- > yY -- > GYY -- > yG -- > y
Esta gramtica est en forma normal de Chomsky y genera el mismo lenguaje que la gramtica inicial, por tanto la respuesta es la a), s se puede construir la FNC.
ltima modificacin: 18 de Diciembre 2013, 09:59 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
lenguaje expresado con una gramtica y autmata a pilaRespuesta #26 :10 de Diciembre 2013, 08:38 PREGUNTA:Dado el lenguaje L definido por la siguiente gramtica:
S -- > xXS -- > SyS -- > xy
L es reconocido por el siguiente automta a pila:
Podemos asegurar que el lenguaje es un lenguaje independiente del contexto no regular
a) Verdadero.b) Falso.
RESPUESTA:La opcin correcta es la opcin b).
Veamos cadenas que genera el lenguaje: no se admite la cadena vaca. Genera: xy, xxy, xxxy, xxxxxxy, xyy, xyyy, xyyyyyy, xxxxxxxyyyyyyy
El lenguaje permite tantas x antes y tantas y despus como se quiera, obligando a que aparezca una xy central.
Vamos a tratar de encontrar una expresin regular que describa el lenguaje: x*(xy)y* permite que haya tantas x antecesoras como se quiera, obliga a que haya una xy central y permite tantas y posteriores como se quiera. Tambin podemos escribir el lenguaje como xx*yy*. Adems si nos fijamos en el autmata a pila propuesto, podemos transformarlo en un autmata finito determinista que parte de qo y pasa a q1 cuando recibe una x, admite tantas x como se desee en q1 mediante un lazo y pasa a q2 (aceptacin) al recibir una y. Adems en q2 admite tantas y como se desee mediante un lazo.
Por tanto se trata de un lenguaje regular, con lo cual es falso que sea un lenguaje independiente del contexto no regular. Respondemos la opcin b).
Nota: el hecho de que el lenguaje se describa con un autmata a pila tal y como se plantea en el enunciado significa que es un LIC, pero no dice nada respecto de si el lenguaje es regular o no regular ya que los lenguajes regulares son un subconjunto de los LIC.ltima modificacin: 18 de Diciembre 2013, 10:00 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
lenguaje interseccin y sus propiedadesRespuesta #27 :13 de Diciembre 2013, 08:36 PREGUNTA:Dado el lenguaje L1= {xnyn: n > 0} y el lenguaje L2= {xny2n: n > 0}.
a) El lenguaje L = L1 L2 no es reconocido por un autmata finito.
b) El lenguaje L = L1 L2 no es reconocido por un autmata a pila determinista.
c) El lenguaje L = L1 L2 no es reconocido por un autmata a pila no determinista.
d) Ninguna de las anteriores
RESPUESTA:la opcin correcta es la d)
el lenguaje L1 comprende las cadenas: xy, xxyy, xxxyyy siendo reconocible por un autmata a pila al que le basta apilar xs y desapilarlas con ys hasta vaciar la pila.
El lenguaje L2 comprende las cadenas xyy, xxyyyy, xxxyyyyyy siendo reconocible por un autmata a pila al que le basta apilar dos xs cada vez que reciba una x y desapilar una x cada vez que reciba una y hasta vaciar la pila.
Por tanto, L1 y L2 son lenguajes independientes del contexto. Ahora nos preguntan acerca de la interseccin de estos dos lenguajes, es decir, el lenguaje que representa las cadenas comunes entre ambos. Sin embargo, ambos lenguajes no tienen cadenas en comn (prueba a buscar alguna y vers que no hay), con lo que el lenguaje interseccin es el lenguaje vaco. El lenguaje vaco es reconocido por cualquier autmata que simplemente tiene un estado de aceptacin y no tiene transiciones. Por tanto, s es reconocido por un autmata finito, a pila determinista o a pila no determinista, lo que hace las respuestas a), b) y c) falsas. Respondemos por tanto la opcin d).ltima modificacin: 18 de Diciembre 2013, 10:00 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
gramticas y forma normal de chomskyRespuesta #28 :16 de Diciembre 2013, 12:18 PREGUNTA:Es posible construir la forma normal de Chomsky de la gramtica siguiente?
S -- > ABA -- > aAcA -- > B -- > bBcB -- > a) Si.
b) No.
RESPUESTA: la opcin correcta es la b).
El smbolo inicial, dado que no nos indican otra cosa, es S. Con la produccin S -- > AB podemos alcanzar la cadena vaca, ya que A deriva a la cadena vaca y B deriva a la cadena vaca. Por tanto, la cadena vaca forma parte del lenguaje generado por la gramtica.
Recordar que la FNC implica estas condiciones:
a) El lenguaje no genera la cadena vacab) Toda produccin es de tipo A -- > BC A -- > ac) La gramtica no tiene producciones ni producciones unitarias ni smbolos intiles.
En este caso el lenguaje genera la cadena vaca por lo que respondemos la opcin b), no es posible generar la forma normal de chomsky de esta gramtica.
Nota: si se nos preguntara, es posible generar una gramtica que genere un lenguaje igual al lenguaje de esta gramtica, excluida la cadena vaca, en forma normal de chomsky? La respuesta sera que podramos responder que s siguiendo el siguiente proceso (indicado a continuacin PARA QUIEN LE INTERESE HACERLO COMO EJERCICIO). Primero, eliminar las producciones que llevan a la cadena vaca:
S -- > ABS -- > AS -- > BA -- > aAcA -- > acB -- > bBcB -- > bc
Segundo, eliminar las producciones unitarias. Para ello se utiliza el mtodo de pares unitarios:
(S, S) | (S, A) | (S, B)(A, A)(B, B)S -- > AB | aAc | ac | bBc | bcA -- > aAc | acB -- > bBc | bc
Hacemos estos cambios: X -- > a, Y -- > b, Z -- > c con lo que la gramtica queda:
S -- > AB | XAZ | XZ | YBZ | YZA -- > XAZ | XZB -- > YBZ | YZ
Nos faltara transformar las producciones que contienen tres no terminales en producciones con 2 no terminales. Para ello hacemos T -- > AZ, M -- > BZ y la gramtica queda:
S -- > AB | XT | XZ | YM | YZA -- > XT | XZB -- > YM | YZT -- > AZM -- > BZ
Que ya est en forma normal de chomsky y representa el lenguaje inicial excepto la cadena vaca, es decir, L { }
En lneanosferacento Avanzado Mensajes: 375
reconocer un lenguaje con automata finito, a pila o MTRespuesta #29 :17 de Diciembre 2013, 10:39 PREGUNTA:Sea el lenguaje L = {xnymzn: con n > 0 y m par}. Cul es la mquina ms simple que puede reconocer este lenguaje?
a) Un autmata finito.
b) Un autmata a pila determinista.
c) Un autmata a pila no determinista.
d) Una mquina de Turing.
RESPUESTA: la opcin correcta es la b).
Planteamos en primer lugar ejemplos de cadenas que pertenecen al lenguaje. El lenguaje no admite la cadena vaca. Admite xyyz, xyyyyz, xyy..yyz, xxyyyyzz. Al hacer la referencia m par podemos preguntarnos si el 0 es considerado par. Vamos a considerar que s. El cero cumple con la definicin de nmero par: es un entero mltiplo del dos, 0 2 = 0. Entonces la cadena xz tambin sera admitida, as como xxyy, xxxyyy, etc.
Para reconocer este lenguaje podramos apilar xs y desapilar ys, lo cual puede ser realizado por un autmata a pila. Sin embargo, adicionalmente necesitamos verificar que el nmero de ys sea par. Esto podramos hacerlo con un autmata a pila que apila con cada y que recibe y desapila con la siguiente. Vamos a tratar de representar el autmata. Primero lo dibujamos de forma aproximada y luego lo vamos perfeccionando a medida que vamos haciendo pruebas.
Para permitir la posibilidad de que vengan ys o no vengan ys podramos pensar en usar no determinismo (transiciones basadas en la cadena vaca, espontneas), pero tenemos que estudiar si podemos evitar el no determinismo. Vamos a intentarlo, puesto que la mquina determinista es ms simple que la no determinista.
Ahora le pasamos las cadenas al autmata y comprobamos el comportamiento:
xz: aceptaxxzz: aceptaxxxxzzzz: aceptaxyyz: aceptaxyyyyz: aceptaxxyyzz: acepta
Conclusin: podemos reconocer el lenguaje con un autmata a pila determinista y la respuesta correcta es la b).
Nota: la posibilidad de un autmata finito la descartamos desde el momento en que necesitamos contar para reconocer el lenguaje.
Nota: este ejercicio quizs se pueda resolver de forma intuitiva teniendo en cuenta que las xs se pueden contrarrestar con las zs y que las ys al ser pares se pueden contrarestar a s mismas. No obstante, consideramos preferible representar el autmata y hacer comprobaciones antes que basarnos en una visin rpida.ltima modificacin: 18 de Diciembre 2013, 10:03 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
lenguaje definido por una gramticaRespuesta #30 :18 de Diciembre 2013, 10:08 PREGUNTA:Sea el lenguaje L definido por la gramtica
S -- > ABA -- > aAcA -- > B -- > bBcB -- >
Cul es la mquina ms simple que puede reconocer este lenguaje?
a) Un autmata finito.b) Un autmata a pila determinista.c) Un autmata a pila no determinista.d) Una mquina de Turing.
RESPUESTA:la opcin correcta es la b).
Analicemos qu cadenas genera la gramtica.
El smbolo inicial, dado que no nos indican otra cosa, es S. Con la produccin S -- > AB podemos alcanzar la cadena vaca, ya que A deriva a la cadena vaca y B deriva a la cadena vaca. Por tanto, la cadena vaca forma parte del lenguaje generado por la gramtica.
Las producciones A nos permiten generar cadenas con el mismo nmero de as que de cs, por ejemplo ac, aacc, aaaccc, etc.
Las producciones B nos permiten generar cadenas con el mismo nmero de bs que de cs, por ejemplo bc, bbcc, bbbccc, etc.
La produccin AB permite que se puedan concatenar cero o muchos pares de (ac) con cero o muchos pares de (bc).
Vamos a tratar de escribir una expresin regular que represente el lenguaje:
(ac)*(bc)*
Esta expresin regular representa el lenguaje? (incluido la cadena vaca). La respuesta es que no, esta expresin regular permite cadenas como ac, acac, acacac bc, bcbc, bcbcbc o la concatenacin de ambas, pero esto no es el lenguaje que queremos representar.
Si nos fijamos necesitamos contar el nmero de as y verificar que el nmero de cs que vengan a continuacin sea igual, contar el nmero de bs y verificar que el nmero de cs que venga a continuacin sea igual. Si necesitamos contar vamos a necesitar al menos un autmata a pila. Vamos a tratar de construir un autmata a pila que reconozca el lenguaje.
Podramos pensar en este autmata, pero la transicin desde q1 introduce no-determinismo.
Para hacerlo determinista eliminamos la transicin con cadena vaca desde q1 y a cambio hacemos q0 estado de aceptacin.
Con este autmata tenemos el problema de que obliga a recibir al menos ac una vez, mientras que el lenguaje permite que ac aparezca cero o muchas veces.
Vamos a corregir esto y redibujar el autmata:
Ahora parece que s est correcto. Es un autmata a pila determinista. Le pasamos cadenas:
: aceptaac: aceptaaacc: aceptaaaaccc : acepta
Nota: el autmata ha resultado relativamente complejo debido a la cantidad de variantes que admite. Podamos haber respondido sin dibujar el autmata? Posiblemente s, teniendo en cuenta que el autmata simplemente tiene que apilar y desapilar en dos etapas puede intuirse que es un autmata a pila determinista, pero esto depende de la capacidad de visin que tenga cada uno. Esta pregunta es menos sencilla de lo que parece...
En lneanosferacento Avanzado Mensajes: 375
lenguaje con capacidad de contar y diferenciar par e imparRespuesta #31 :23 de Diciembre 2013, 20:14 PREGUNTA: Dado el lenguaje L = {xnynzm: donde se cumplen las siguientes condiciones, n > 0, si n es par m es igual a 2 o si n es impar m es igual a 3}
Cul es la mquina ms simple que puede reconocerlo?
a) Un autmata finito
b) Un autmata a pila determinista
c) Un autmata a pila no determinista
d) Ninguna de las anteriores
RESPUESTA: la opcin correcta es la b).
Veamos algunas de las cadenas que reconoce el lenguaje:
Con n=1, n es impar, reconoce xyzzzCon n=2, n es par, reconoce xxyyzzCon n=3, n es impar, reconoce xxxyyyzzzCon n=4, n es par, reconoce xxxxyyyyzzCon n=5, n es impar, reconoce xxxxxyyyyyzzz
Necesitamos contar las apariciones de las xs para luego comprobar que las apariciones de las ys sean coincidentes en nmero. Desde el momento en que necesitamos contar descartamos los autmatas finitos, requeriremos como mnimo un autmata a pila. En este caso, si logramos diferenciar cundo el nmero de xs es impar, sabemos que podemos llegar a aceptacin desapilando las xs y aadiendo dos zs. Si logramos diferenciar cundo el nmero de xs es par, sabemos que podemos llegar a aceptacin desapilando las xs y aadiendo tres zs.
Vamos a tratar de plantear un autmata a pila que resuelva el problema. A priori no tenemos del todo claro si va a ser posible resolverlo con un autmata a pila determinista o no. Despus de varias pruebas y tanteos planteamos el siguiente autmata:
Este es un autmata a pila determinista. Pasamos las cadenas que habamos planteado a este autmata. Vemos que las resuelve bien, y vemos que la generalizacin no plantea problemas. Hemos representado el lenguaje con un autmata a pila determinista, por tanto la opcin correcta es la b).
Nota: el autmata resuelve bien porque logra diferenciar par / impar mediante transiciones y porque una vez detectado si el caso es par o impar tiene que aadir un nmero finito de smbolos.
Los estados se pueden interpretar de la siguiente manera:
q2: se ha reconocido un nmero impar de xsq3: se ha reconocido un nmero par de xsq6: se acepta la cadena de entradaEn lneanosferacento Avanzado Mensajes: 375
tipo de autmata para reconocer un lenguajeRespuesta #32 :13 de Enero 2014, 10:09 PREGUNTA. Sea el lenguaje L = {xnymzn: con n y m > 0, y con n = m}. Cul es la mquina ms simple que puede reconocer este lenguaje?
a) Un autmata finito.
b) Un autmata a pila determinista.
c) Un autmata a pila no determinista.
d) Una mquina de Turing.
RESPUESTA: la opcin correcta es la d).
Al indicarnos que n = m el lenguaje es equivalente a xnynzn : con n > 0, es decir, cadenas con el mismo nmero de xs, ys y zs que aparecen en este orden. Un autmata finito no puede recordar el nmero de xs que han aparecido para compararlo con el nmero de ys y el nmero de zs. Con un autmata finito podramos reconocer ciclos simples xyz pero no cadenas del tipo xxxyyyzzz donde necesitamos recordar los caracteres que han aparecido previamente.
Pensemos ahora en un autmata a pila. Podramos pensar en apilar con las xs, luego desapilar con las ys, pero ya no podramos comprobar las zs.
Supongamos ahora que apilamos dobles xs cada vez que encontramos una x, luego hacemos una transicin a otro estado al encontrar una y y desapilamos una x simple por cada y, luego hacemos una transicin con una z a otro estado y desapilamos una x simple por cada z. Una cadena como xxyyzz nos llevara a aceptacin pero una cadena como xxyzzz tambin porque no sabemos al desapilar con las zs quin ha puesto el smbolo, si se debe a una x se debe a una y.
Un autmata a pila no determinista nos permite explorar mltiples vas, pero tampoco nos permite recordar la informacin que necesitamos recordar.
Una mquina de Turing con varias cintas puede almacenar la informacin que desee (y puede reducirse a una mquina de Turing de una cinta si se quiere). Por tanto respondemos la opcin d) Mquina de Turing.
En lneanosferacento Avanzado Mensajes: 375
enunciado examen resuelto autmatas, gramticas y lenguajesRespuesta #33 :14 de Enero 2014, 10:04 Con lo visto hasta ahora hemos completado un examen, que normalmente consta de diez preguntas tipo test. Es conveniente que se trate de resolver el examen haciendo una simulacin de examen real, controlando el tiempo empleado y todas las preguntas a la vez sin consultar ningn tipo de documentacin, y luego comprobar cmo nos hubiera ido en ese caso supuesto "real" y qu nota habramos sacado. Para quien quiera intentarlo, dejo el examen con enunciados completos en el archivo adjunto a este post (archivo jun12_2a_sem_A.pdf, pulsar sobre el nombre o icono para descargarlo estando logeado). Y continuamos...En lneanosferacento Avanzado Mensajes: 375
generar un autmata a partir de una gramticaRespuesta #34 :16 de Enero 2014, 09:43 PREGUNTA: Dada la siguiente gramtica regular no determinista, donde A es su smbolo inicial:
A -- > xAA -- > yAA -- > xBB -- > xAB -- > yAB -- > xBB -- > xCC -- > yDC -- > xBD -- > D -- > xBD -- > yA
Podemos construir un autmata finito determinista con solo 2 estados que reconozca el mismo lenguaje.
a) Verdadero.b) Falso.
RESPUESTA:
Tenemos que prestar atencin al enunciado:
a)Nos dice que es una gramtica regular no determinista con smbolo inicial Ab)Nos pregunta si podemos construir un autmata finito determinista que reconozca el mismo lenguaje
Por tanto no nos pide ni siquiera transformar la gramtica en un autmata, sino ver si podemos construir un autmata que reconozca el mismo lenguaje.
Lo primero que haremos ser reflexionar sobre el lenguaje y las cadenas que genera el lenguaje.
Si transformamos la gramtica en autmata finito no determinista obtenemos esto:
Este autmata finito es indeterminista, pero sabemos que un AFN se puede transformar en un AFD. Ahora trataremos de encontrar algunas de las cadenas aceptadas por el autmata:
xxy: es la cadena ms corta que acepta, podramos representarla con un AFD de dos estados, uno inicial que acepta indefinidamente x y otro final al que se llega con una y. Sin embargo, aparte de ser la cadena ms corta que acepta es la secuencia final obligatoria para llegar a aceptacin y se permiten expresiones del tipo x(intercarlar xs e ys)xxy. Si usamos un estado inicial que acepta indefinidamente xs e ys que nos lleve a aceptacin con una y, no podemos asegurar que el final ser xxy. Para asegurar este final, con un AFD necesitaremos ms de dos estados.
Respondemos entonces b) Falso.
Otro razonamiento: cuando se pasa de AFD a AFN se definen nuevos estados a partir del conjunto potencia de los estados del AFN. En el paso de AFD a AFN nos podemos encontrar:
a)Caso peor: se generan 2nestados en el AFDb)Caso mejor: se mantienen los n estados del AFN
Por tanto el AFD no tendr menos de 4 estados y respondemos la opcin b) Falso.
Aunque con lo dicho ya no es necesario, vamos a construir el AFD usando la tcnica de subconjuntos a modo de ejercicio. Para ello partimos del estado inicial y vamos representando los conjuntos de estados alcanzables (y las transiciones desde cada uno de ellos) mediante cierres . En este caso como no tenemos transiciones simplemente tenemos que fijarnos en los estados alcanzables directamente en base al smbolo ledo.EstadoxyObservaciones
{A}{A, B}{A}Estado inicial
{A, B}{A, B, C}{A}
{A, B, C}{A, B, C}{A,D}
{A, D}{A, B}{A}De aceptacin
Nos queda este autmata:
En este caso estamos en el caso mejor: no se ha incrementeado el nmero de estados respecto del AFN.En lneanosferacento Avanzado Mensajes: 375
lema de bombeo aplicado a los autmatas a pilaRespuesta #35 :18 de Enero 2014, 13:50 PREGUNTA: El lema del bombeo aplicado a los autmatas a pila demuestra que el lenguaje L = {xnynzn: n > 0} no puede ser reconocido por ninguna mquina.
a) Verdadero.b) Falso.
RESPUESTA: la opcin correcta es la b).
Falso. Este lenguaje puede ser reconocido por una mquina de Turing. El lema de bombeo aplicado a los autmatas a pila demuestra que un lenguaje no es un LIC, y por tanto no puede ser reconocido por un autmata a pila, pero no demuestra que un lenguaje no pueda ser reconocido por ninguna mquina.
En lneanosferacento Avanzado Mensajes: 375
relacin entre lenguajes de un autmata y de una gramticaRespuesta #36 :20 de Enero 2014, 11:53 PREGUNTA: Dado el lenguaje L1reconocido por el autmata
y el lenguaje L2definido por la gramtica
S -- > xSyS -- >
Podemos afirmar:
a) L1= L2
b) L1 L2
c) L1 L2
d) L2 L1
RESPUESTA: la opcin correcta es la b)
Hay que tener en cuenta que la gramtica, lenguaje L2, obliga a que por cada x se aada una y, es decir, obliga a que el nmero de x y el nmero de y sean iguales. En cambio el lenguaje L1 permite que venga cualquier nmero de x y cualquier nmero de ys sin necesidad de que sean iguales. El lenguaje L1 est representado por un autmata finito determinista, por tanto es un lenguaje regular.
El lenguaje L2 ser L2 = {xnyn| n >= 0}. Este lenguaje requiere contar el nmero de x para verificar que el nmero de ys sean iguales. Los autmatas finitos no tienen capacidad para contar. Por tanto este lenguaje necesita de un autmata a pila para apilar con las x y desapilar con las ys y se trata de un LIC.
Vemos que el lenguaje L2 se diferencia adems de L1 en que L1 no acepta la cadena vaca y L2 s acepta la cadena vaca.
Por tanto la opcin a) es falsa: no son lenguajes iguales.
La opcin b) significa que los lenguajes son distintos, lo cual es cierto pero vamos a repasar las otras opciones.
La opcin c) significara que todas las cadenas de L1 pertenecen a L2. Es cierto? No, porque en L1 estara por ejemplo xxxy que no est en L2 por no coincidir el nmero de x con el nmero de ys.
La opcin d) significara que todas las cadenas de L2 estaran en L1, lo cual no es cierto porque la cadena vaca no est en L1.
Respondemos la opcin b), son lenguajes distintos. No es difcil de ver pero requiere razonar meticulosamente y sin perder de vista detalles como la aceptacin o no de la cadena vaca.
ltima modificacin: 20 de Enero 2014, 11:55 de nosferacentoEn lneanosferacento Avanzado Mensajes: 375
lenguaje libre de contexto no regular con nmero finito de palabrasRespuesta #37 :21 de Enero 2014, 13:07 PREGUNTA: Existe algn lenguaje independiente del contexto no regular compuesto por un nmero finito de palabras?
a) S.b) No.
RESPUESTA: la opcin correcta es la b)
Si el lenguaje estuviera compuesto por un nmero finito de palabras sera representable por un autmata finito y por tanto sera un lenguaje regular. Para ser un LIC no regular debe admitir infinitas palabras, por tanto respondemos la opcin b).
Adicionalmente indicaremos que: todo lenguaje con un nmero finito de palabras es regular. Es cierto que con muchas palabras quizs nos salieran autmatas finitos gigantescos, pero seguira siendo un lenguaje regular.En lneanosferacento Avanzado Mensajes: 375
lenguaje reconocido por una mquina de TuringRespuesta #38 :27 de Enero 2014, 10:00 PREGUNTA: Sea L2= {xnynzn| n > 0}. Y sea L1el lenguaje reconocido por la siguiente mquina de Turing.
Cul de las siguientes afirmaciones es correcta?
a) L1 = L2
b) L1 L2
c) L1 L2
d) L2 L1
RESPUESTA: hay dos opciones que podran considerarse correctas, la b y la d. Nosotros nos decantamos por responder la d) (ver el razonamiento seguido a continuacin)
Nota: fijarse que el smbolo B o blanco de la mquina de Turing aqu lo representan con un espacio vaco. Es decir, la transicin de q1 a q2 es B;B, -->, etc. En otras ocasiones tambin se representa con un cuadradito vaco.
Tratemos de ver qu es lo que hace la mquina de Turing propuesta. Vemos que en la transicin de q0 a q1 requiere una x, en la transicin de q2 a q3 requiere una y, y en la transicin de q4 a q5 requiere una z.
Nos preguntamos admite la MT la cadena zyx? Para esta cadena tenemos estas transiciones: q0zyx zq0yz zyq0x zq1yx q1zyx q1Bzyx q2zyx zq2yx q3zyx q3Bzyx q4zyx q5Bzyx
Efectivamente la mquina admite esta cadena. La mquina parece admitir cualquier cadena que contenga al menos una x, una y y una z sin requerir un orden especfico.
Si tratamos de ver lo que hace, en primer lugar se mueve a derechas hasta encontrar una x. Luego vuelve al principio de la cadena, hasta encontrar el blanco inicial. Luego se mueve a derechas hasta encontrar una y, y seguidamente vuelve al principio de la cadena, hasta encontrar el blanco inicial. Luego se mueve a derechas hasta encontrar una z y acepta.
Hemos visto que admite zyx y esta cadena no pertenece al lenguaje L2, por tanto descartamos tanto la opcin de que L1 = L2 como la opcin de que L1 sea un subconjunto de L2.
La opcin b podemos decir que es verdadera, pero nos preguntamos si la opcin d es tambin verdadera.
L1 reconoce cualquier cadena que contenga al menos una x, una y una z, por tanto reconoce todas las cadenas en el lenguaje L2 que han de tener obligatoriamente una x, una y y una z. Por tanto es cierto que L2 es subconjunto de L1.
Respondemos la opcin d) porque es la que mejor describe la situacin, aunque dado que la opcin b) puede considerarse cierta y por tanto generar dudas, recomendamos escribir un comentario al respecto en el examen, en una hoja aparte.En lneanosferacento Avanzado Mensajes: 375
concepto de gramtica regular y gramtica independiente del contextoRespuesta #39 :29 de Enero 2014, 11:08 PREGUNTA: La siguiente gramtica con smbolo inicial S:
S -- > ABA -- > AaA -- > aB -- > BbB -- > b
a) Es una gramtica regular.b) Es una gramtica independiente del contexto.c) Ninguna de las anteriores.
RESPUESTA: la opcin correcta es la b) (esta pregunta tiene truco, ver la explicacin).
Trataremos de analizar qu cadenas genera la gramtica. No hay derivaciones a la cadena vaca, por tanto la cadena vaca no forma parte del lenguaje. A puede derivar a una cadena con un mnimo de una a y un mximo de infinitas as. B puede derivar a una cadena con un mnimo de una b y un mximo de infinitas bs. El smbolo inicial puede derivar a como mnimo ab, y a cualquier cadena con cualquier nmero de as antecediendo a cualquier nmero de bs. Esto equivale a la expresin regular aa*bb*. Siempre que una gramtica representa un lenguaje regular es una gramtica regular? Intuitivamente quizs respondamos que s, pero lo cierto es que no, ah est el truco o sutileza de esta pregunta.
Por ello nos tenemos que remitir a la definicin de gramtica regular. Una gramtica es regular si cumple estos requisitos:
a)En el lado izquierdo de las reglas de produccin solo aparece un smbolob)El lado derecho de las normas slo puede contener dos cosas: un smbolo terminal (se acepta tambin la cadena vaca) un smbolo terminal seguido de un smbolo no terminal.
Por tanto no se aceptan reglas como A -- > Aa porque el smbolo no terminal no puede aparecer como primer smbolo en el lado derecho.
Tampoco se aceptan reglas como A -- > AB porque tiene dos smbolos no terminales seguidos en el lado derecho de la regla, por tanto la gramtica propuesta no es regular.
Dado que los lenguajes regulares son un subconjunto de los lenguajes independientes del contexto y dado que las gramticas independientes del contexto aceptan que en el lado derecho haya cualquier sucesin de smbolos (terminales o no terminales) concluimos que la gramtica es una gramtica independiente del contexto que genera un lenguaje regular.
Pregunta que pareca sencilla pero que ha resultado bastante ms complicada de responder de lo que aparentaba.