[2006] [Segundo Parcial] [Ejercicio 3] [Parte a] Duda sobre un APD por stack vacio

[2006] [Segundo Parcial] [Ejercicio 3] [Parte a] Duda sobre un APD por stack vacio

de Martin Pacheco -
Número de respuestas: 4
En el ejercicio 3 parte a de esta parte, se da el lenguaje:
L_a = \{ w / w \in \{a,b\}^* \text{ y } 2*{|w|}_a = 3 * {|w|}_b \}

y se pide hacer un automata que lo reconozca.

La solucion oficial del parcial es el siguiente automata:



Yo hice EXACTAMENTE el mismo autómata, pero lo hice por stack vacio, entonces la diferencia es que no tengo el estado q_f (ni la transicion epsilon que va hacia el). Y al quitar esta transicion, el automata queda determinsta.

Está bien?


En respuesta a Martin Pacheco

Re: [Segundo Parcial 2006] Duda sobre un APD por stack vacio

de Diego Garat -

hola:

en un APD, el que la solución no quede determinista no es ni bueno ni malo. lo mismo si es por estado final o por stack vacío. las soluciones se dan por buenas si reconocen al lenguaje pedido.

respecto a tu solución, si el APD reconoce por stack vacío, en algún estado tendrá que quitarse el tope del stack. dado que en todos los estados ya existen transiciones con Zo, sin importar en cuál lo hiciste, dudo que el resultado sea determinista.


saludos,

d.-


En respuesta a Diego Garat

Re: [Segundo Parcial 2006] Duda sobre un APD por stack vacio

de Nicolas Giossa Jaen -

Hola, no quise abrir otro tema ya que mi duda es sobre el mismo ejercicio.

¿Podrían explicarme cuál es la estrategia que se usa en el autómata? No logro terminar de entenderlo.


Gracias.

Saludos.

En respuesta a Nicolas Giossa Jaen

Re: [Segundo Parcial 2006] Duda sobre un APD por stack vacio

de Diego Garat -

hola:

en el stack no hay letras mezcladas (más allá de Zo):  hay sólo A o sólo B, dependiendo de para qué lado esté desbalanceada la cuenta; cada letra en el stack indica qué letra habría que  leer en la entrada para balancear la cuenta. 

así, si en el stack hay A y vienen bes, seguirás apilando más A para compensar esta nueva b, pero si vienen aes tendrás que desapilar porque algunas de las letras que hacían falta se leyeron de la entrada. análogamente se hace en el caso donde el tope es B. Zo en el tope de la pila implica que las cantidades están balanceadas, o sea, la relación se cumple.  

el punto más complicado de ver es cuánto hay que apilar o desapilar por cada letra, dado que la relación no es 1 a 1 sino 3-2. por eso cada letra desapila o apila una cantidad distinta: las aes apilan/desapilan de a 2, las bes de a 3. 

para entender cómo funciona ese 3-2, te recomiendo probar con permutaciones de la tira aaabb.

saludos,

d.-