UTNianos

Versión completa: [Ayuda] Armar lenguaje de gramatica. Discreta
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
No me queda claro cual es el procedimiento adecuado para sacar el lenguaje mediante el arbol de derivacion.

hay casos donde el lenguaje suele ser por ejemplo

1) L(G)= {a^n . b^m / n>0, m>0}

2)pero a la hora de sacar lenguajes. en algunos casos queda

w= 1001
w= 2001
w= 2111

y no suele ser tan facil armarlo como en el caso 1 que solo pueden ocurrir

w= aabbb
w= abb
w= aaabbbb

Mis preguntas son:


-como armar L(G) donde las palabras son como el caso 2 (sus terminales no tienen un orden especifico y hay casos donde algunos terminales no aparecen en la palabra)

- Recomiendan algo para ver exclusivamente como sacar las palabras de una gramatica. Por que yo solo trato de sacar hasta que tengo terminales pero siempre me varian las palabras
Mira para armar el lenguaje segun estas palabras

w= 1001
w= 2001
w= 2111

Sería algo así:

L(G): {2^a 1^b 0^c 1^d / } y luego vas armando las posibles combinaciones de letras para que se te formen dichas palabras

Para 1001, sería así a=0 ^ b=d=1 ^ c=2
Para 2001 sería así a=1 ^ b=0 ^c=2 ^ d=1
Para 2111 sería así a=1 ^ b=3 ^ c=d=0

Entonces formalizndo el Lenguaje quedaría

L(G): {2^a 1^b 0^c 1^d /(a=0 ^ b=d=1 ^ c=2) v (a=1 ^ b=0 ^c=2 ^ d=1) v (a=1 ^ b=3 ^ c=d=0) }

OBviamente no es el mejor ejemplo este para probar

Pero basicamente para armar un Lenguaje a partir de una Gramatica, es poner su alfabeto con superindices variables, y luego aplicar todas las infinitas posibilidades que hay de las gramaticas.

Por ejemplo suponete que la gramatica admite las palabras
101
1001
10001
1...1

Entonces el lenguaje sería

L= 1^x 0^y 1^x / x=1 ^y>=1

Pero si tenes casos puntuales como el anterior, en las condiciones tenes que abarcar TODAS las posibilidades posibles, aunque tengas miles de OR
URLs de referencia