[2014] [Primer Parcial] [Ejercicio 4] [Parte b]

[2014] [Primer Parcial] [Ejercicio 4] [Parte b]

de Sebastian Federico Fiamene Antelo -
Número de respuestas: 7

Estimados, buenas noches.

En el ejercicio del autómata con salida de la parte 4b, el autómata que allí se muestra como solución, no es correcto ya que no llega a consumir toda la tira en el caso que la entrada sea la tira "111#". Puesto que nunca podría salir de q0, al no existir transición con el símbolo "#" (para cumplir que no sea válida la tira "#"), con lo que queda trancado, y si bien hasta ese momento se produjo la salida esperada "bbb", no se llega a consumir la tira, por lo que el autómata no reconocería como tira válida de ese lenguaje a "111#".

Para que sea correcto, se debería eliminar la auto transición de q0 con el símbolo b y agregar una transición de q0 a q4, consumiendo un 1 e imprimiendo una b.

Si me equivoco por favor háganmelo saber.

Saludos!



En respuesta a Sebastian Federico Fiamene Antelo

Re: [Parcial][2014][Ej4b]

de Diego Garat -

hola:

el autómata no maneja bien ese caso, es cierto.

también se podría arreglar agregando una transición con # desde q0 a q3.


saludos,

d.-


En respuesta a Diego Garat

Re: [Parcial][2014][Ej4b]

de Martin Pacheco -

Justo en este ejercicio la letra dice que la tira "#" no es valida, asi que esa transicion no serviría.

En respuesta a Martin Pacheco

Re: [Parcial][2014][Ej4b]

de Diego Garat -

hola:

sí, es verdad, ese atajo no andaría en este caso.


saludos,

d.-


En respuesta a Diego Garat

Re: [Parcial][2014][Ej4b]

de Joel Cabrera Dechia -
Buenas!
Cómo va?

No sé cómo interpretar la letra, porque dice:
"Además, toda entrada es una secuencia de 0's y 1's y que termina con el símbolo “#” y no puede venir solamente el #"

Yo esto lo interpreto como que me puedo asegurar de que la entrada va a tener esa forma, es decir, no me va a venir un # solo y debería despreocuparme. Entiendo la otra interpretación que nombran acá (y es lo que intenta evitar la solución) pero ¿Qué tanto problema habría de agregar esa arista de q0 a q3 con entrada # y salida epsilon, porque al ser salida epsilon y q3 un pozo no le veo problema; llega un # y me muevo de estado sí, pero no imprimo nada, que es lo que me importa, o no?

También aparece algo por el estilo en el parcial de 2015,  en el ejercicio 4b de los números romanos.

Saludos,
Joel
En respuesta a Joel Cabrera Dechia

Re: [Parcial][2014][Ej4b]

de Santiago Gongora -

Buen día Joel,

me meto en el hilo de atrevido porque cuando comentaron esto yo no siquiera había cursado TeoLeng xD

Respuesta corta: Con esa transición no perdés nada, es verdad, pero tampoco ganás nada.

Respuesta larga: Como la letra ya te dice que  # no es una tira válida, no tiene mucho sentido que hagas un camino del autómata para ella. Los autómatas con salida suelen tener que dar una salida para toda entrada válida, sin preocuparse de qué pasa para las no válidas.

Si fuéramos a poner caminos de ejecución para todas las tiras inválidas terminaríamos teniendo muchas transiciones de "leo un símbolo y produzco \epsilon". Adicionalmente también tendríamos que tener un estado pozo como solemos hacer para los autómata finitos de reconocimiento de tiras, como los deterministas. Volviendo al ejercicio, bajo ese supuesto, en la solución q_3 debería tener una transición para cada letra del alfabeto donde imprima \epsilon, para contemplar a todas las tiras inválidas que llegan a ese estado (inválidas porque luego del # no puede venir nada según el lenguaje). Pero la verdad es que esto no te agrega nada nada nada al autómata con salida.


En definitiva, lo que viene significando # es "antes de mí vino una serie de al menos 1 símbolo y luego de mí no viene nada". Si no se cumplen esas dos condiciones a la vez, entonces la tira es inválida. Y si no es válida, no le damos bola. Solo le prestamos atención a las tiras válidas.

Mañana en el parcial pregunten todas estas dudas de letra que tengan.

Cualquier cosa la seguimos,
Santi

En respuesta a Santiago Gongora

Re: [Parcial][2014][Ej4b]

de Joel Cabrera Dechia -
Hola Santi,
Muchas gracias por la respuesta.

El tema es que en mi propuesta, yo creo que sí gano, porque yo junté q_0 y q_4 de la solución y me quedo así:
Propuesta de automata
Es valido acá poner esa transición de q_0 a q_3?

Saludos,
Joel
En respuesta a Joel Cabrera Dechia

Re: [Parcial][2014][Ej4b]

de Diego Garat -
hola:

las máquinas secuenciales están un poco en un limbo legal, porque nosotros, para simplificar los ejercicios, les decimos que se imaginen que la máquina trabaja en régimen, que se imaginen una entrada infinita, que pueden asumir que la máquina tiene la entrada correcta y si no tiene la forma correcta entonces no importa, etc.

aplicando el formato del profesor góngora:

- respuesta corta: sí, podes hacer eso. la salida es correcta para las tiras con la forma correcta esperada, y el resto no importan. la máquina solo garantiza su salida para una entrada de la forma esperada.

- respuesta larga: a pesar de lo anterior, es mucho más prolijo tener en cuenta los posibles errores de entrada y dar un KO cuando la tira no tiene el formato esperado; la forma de dar un error es, precisamente, interrumpiendo el procesamiento cuando se detecta un error. en este caso, tu transición no sería la solución buscada... habría que agregar otro estado para contemplar el primer uno de la secuencia. en estos casos, la función "parcial" me permite dar un "mensaje de error" cuando algo no va bien.

saludos,
d.-