Gramáticas Incontextuales

Thanat0s

Me he atascado en el siguiente problema y no consigo resolverlo, a ver si alguien me puede echar una mano poniendo algún ejemplo parecido a la gramática que me piden.

El enunciado es el siguiente:
Sea el conjunto abc* \ {an bn cn | n>=0} de las cadenas de aes seguidas de bes seguidas de ces tales que el número de aes, bes y ces no es el mismo. Define una GI para este conjunto y demuestra informalmente que la gramática es correcta.

El caso es que cuando me he puesto, me he dado cuenta de que es una salvajada, porque tienes los siguientes casos (para facilitar la nomenclaruta nº de aes = a, etc):
a > b > c
a > c > b
b > a > c
b > c > a
c > a > b
c > b > a

Son demasiados casos, demasiadas posibilidades y no consigo hacer algo general.

Lo que si me he dado cuenta es que la longitud de las palabras aumenta de 3 en 3.
Siendo los casos base: aab, aac, bba, bbc, cca y ccb.

En fin, que eso, que si alguien que haya cursado TALF o haya dado algo de gramáticas incontextuales me puede echar una mano, me haría un gran favor.

Saludos.

rollervan

qué entiendes por GI?

Thanat0s

#2 Lo que dice el título, gramática incontextual...

rollervan

me refería a la condición para que una gramática sea incontextual.

fíjate que te pone que lo demuestres de manera informal (entiendo así a lo chano).

Yo lo que haría sería comprabarlo para un n en concreto y cogería por ejemplo a>b>c

las demas opciones salen de sustitutir a por b, a por c, b por c.. y así

si lo que quieres es generalizar; me da a mí que o es muy fácil o te están pidiendo algo abusivo.

clamuno

primero demuestrale que en un espacio euclideo a b y c conmutan entre si, y una vez echo eso, continua para un solo ejemplo...
lo primero como mero formalismo, pero a esta gente raruna de matematicas les suele molar eso ;)

Kartalon

Supongo que te refieres a las de tipo 2 o independientes de contexto, ahora me leo entero el hilo (que yo aprobe ya lenguajes formales e informática teorica :D )

Kartalon

A ver, el lenguaje generado obviamente es: palabra vacia, a, b, c, aa, ab, ac, ...

Para definir la gramática necesitas las reglas generativas, tomando como símbolo no finales las mayúsculas, siendo la S el inicial, y símbolos finales a, b, c y entendiendo E como la palabra vacía definimos las reglas.

Como es una gramática independiente de contexto podemos incluir reglas que no sean simplemente lineales a derechas o iquizerdas.

Empezamos con el símbolo inicial:
S ::= E | Sc

con esto ya tenemos un número infinito de c's y la palabra vacía, al estar en orden añadimos una regla que nos de otro símbolo intermedio

S ::= c | Sc | B

Seguimos definiendo las reglas que generan bes

B ::= b | Bb | A

A ::= a | Aa | E

Más o menos asi sería, fijate que esté bien formada y GL

(El resto de la tupla la compones tú, so vago)

#5 ¿Qué cojones dices? xDD

ke2g

no macuerdo yo mucho de esto pero juraria que {an bn cn | n>=0} no se puede hacer con una GI.

EDIT 2: #7 estas seguro que eso esta bien?mmm, esque por ejemplo se puede formar abc (que no cumple lo del enunciado): Sc->Bc->Bbc->Abc->abc

B

Yo no sé de esto (aún), pero #7 diría que ab no es una palabra del conjunto que ha definido #1 ya que tiene igual número de aes que de ces, no? (lo digo porque a lo mejor se haría de manera distinta y me parece curioso el tema, no es por tocar las narices XD)

Kartalon

Joder, ostias, que todas estan a n, no está bien, pero bueno, eso sería para

abc* en ER

y abc sí que esta en el lenguaje definido, sólo que había entendido mal el lenguaje. (Ya decía yo que era demasiado fácil)

El que pide #1 si no sigo igual de espeso sería
L = { E, abc, aabbcc, aaabbbccc, ... }

¿no?

S ::= E | aSc

Sería para L = { E, ac, aacc, ... }

Para el de #1 ahora no me sale, luego si eso lo pienso y le hago los deberes al vago de thani que no muestra el más mínimo interés!!

Edit: JODER OSTIA PUTA QUE ME LEA EL ENUNCIADO ENTERO xDDDD

Que sólo me había leído la expresión regular, luego la expresión regular seguida de la excepción, y luego la parrafada que meten porque son unos lamers en la facultad del thani

Olvidar todo lo de arriba.

Thanat0s

#7 Sí si la teoría yo también la sé, pero no se puede formar como dices, como ha dicho #9 las palabras a, b o c, no pertenecen a ese lenguaje.
He puesto los casos bases en #1.

#8 Creo que sí, que llevas razón, que no existe una GI para definir {an bn cn | n>=0}.

#10 Que no melón, que abc no puede ser una palabra del lenguaje que queda :P (ni a, ni b, ni c, el primer caso base es aab)

Kartalon

Es que si te ponen una gramática que no es formal que quieres que haga? ¿Leerme el problema entero pa na? ><

obviamente ese lenguaje no es formal y por tanto NO tienen una gramática formal.

Culpa tuya por ser un lamer.

PD: Consejo, antes intenta hacer el autómata, si no te sale el autómata probablemente no sea formal. Faltaría aplicarle el lema de bombeo para asegurarnos pero bleh, viendo lo lamer que eres...

Thanat0s

Ojo, la que decimos que no es formal es:
{an bn cn | n>=0}

No el resultado: abc* \ {an bn cn | n>=0}

Que eso es lo que piden hacer con una GI, pero bueno, en el caso de que no lo fuera, ¿cómo cojones demuestro que no es una GI? xD

Edit: ok, hago lema de bombeo, isi & fast (hacer el AFD es un suicidio).

Yandr0s

JOder con lo facil que es...

la solucion es 0,67

1
Kartalon

A ver, IMHO tienes un cacao fino (entre otras cosas porque no se porqué utilizáis terminología tan rara).

Para que quede claro, me refiero a http://es.wikipedia.org/wiki/Jerarqu%C3%ADa_de_Chomsky

Supongo que por gramáticas incontextuales te refieres a gramáticas independientes de contexto o de tipo 2 que incluyen las regulares (aceptadas por autómatas finitos) y las independientes de contexto (aceptadas por autómatas de pila).

Lo más fácil es que pruebes a hacer un autómata de pila, si no puedes hacer un autómata de pila seguramente no sea independiente de contexto y quizás no sea ni formal.

Edit: #13 por lema de bombeo para las independientes de contexto es un coñazo fino, para las regulares es u xi v pero para las independientes si no me equivoco es a bi c dj e

No estoy seguro porque estoy intentando olvidar todo esto a base de alcohol, pero creo que era asi...

Thanat0s

Sí, incontextuales y libre de contexto es lo mismo, sólo que para abreviar usamos incontextuales (GI).

Lo del lema de bombeo, yo sólo he usado uno que es el de w=xyz tales que:
|xy|<=n
y!=€
xykz pertenece al lenguaje

Y creo que en este también se puede aplicar.

pd: no puedo usar autómatas de pila con este ejercicio porque todavía no los había dado en el temario, este va por delante de autómatas, en concreto 1 tema por delante.

Kartalon

#16 Ese es el lema de bombeo de los regulares, no de todos los independientes de contexto. Es decir, puede que haya uno que sea independiente de contexto pero no regular y no cumpla ese lema de bombeo.

Si quieres te busco el de los independientes de contexto y te lo pongo entero.

PD: Y vaya temario de mierda, sinceramente xD Yo no veo el sentido a estudiar gramáticas y lenguajes sin estudiar autómatas, ya que los autómatas son la herramienta para saber si se aceptan las palabras del lenguaje.

Es como si te enseñan a escribir pero no a usar un bolígrafo xD

PD2: Nosotros los abreviamos llamandolos G0, G1, G2, G3....

ke2g

fliparas cuando lleges a las maquinas de Turing ... xD, para que luego digan que los informaticos solo picamos codigo...

Kartalon

Venga, que lo he buscado (C&P a mano de mis apuntes € = pertenece y E = palabra vacía)

Si L es un lenguaje independiente de contexto con infinitas cadenas -> cualquier cadena w€L de longitud mayor que un cierto k€N puede descomponerse como w=uvxyz (siendo u, v, x, y, z € del cierre del alfabeto) de forma que:

u vi x yi z € L para todo i€N

con |vy| >= 1 y con |vxy| <= k

Ej.:

Sea L={0n 1n, n€N}

cualquier palabra |w|>= 2 es:

w=uvxyz= 0n-1 0 E 1 1n-1

de modo que: 0n-1 0 E 1i 1n-1 pertenece a L para todo i perteneciente a N

|vy| = 2 >=1

|vxy| = 2 <= k

CUMPLE EL LEMA

#18 Pues a mi me parecen mucho más guays e incluso fáciles las máquinas de Turing que los AP xDDD

Y las RNA me ponen palotísimo si no fuera porque sigo sin entenderlas del todo y eso que hace ya unos meses que aprobé aquello xDD

Thanat0s

#19 Me suena que tengo ese lema por algún sitio en mis apuntes, mañana lo busco porque lo tengo que tener y no me suena haberlo usado en este tema :S

Y ya he visto autómatas de pila, maquinas de Turing, NP vs P y todo eso que hay de indecidibilidad y demás mierdas que no sirven para nada, simplemente me estoy haciendo todos los ejercicios que puedo para ir lo mejor preparado que pueda para el examen que tengo el día 24, pero este ejercicio es anterior a ver el concepto de autómata de pila.

m0rG

Pero según recuerdo el lema de bombeo se puede utilizar para probar que una gramática NO es regular o NO es independiente de contexto. El que una gramática cumpla el lema de bombeo no implica que pertenezca a esa clase (es condición necesaria pero no suficiente).Sacado de la wikipedia:

"If a language does not satisfy the condition given by the pumping lemma, we have established that it is not context-free. On the other hand, there are languages that are not context-free, but still satisfy the condition given by the pumping lemma."

Este ejemplo me suena bastante de cuando yo estudié estas mierdas (Teoría de automátas y lenguajes formales ftw) y yo diría que no es una GIC.No se me ocurre cómo puedes construir un automáta a pila para reconocerla pero no parece difícil hacer una máquina de Turing para ello (es un lenguaje formal seguro diría yo).

TBT

Qué conjunto tienes, an bm ck con n, m, k distintos entre si?

Los casos base creo q los tienes mal, pej sobran los q desordenan la palabra "caa" "cbb"...

Tiene pinta q se hace con MT

B

Una pregunta de n00b... Todo esto de las gramáticas viene de los teoremas de incompletitud de Gödel? Me suena que mi padre me dijo algo así pero no estoy seguro. Si es así me alegro porque la optativa de matemáticas que cogeré trata precisamente de estos teoremas.

Thanat0s

#22 Bueno sí, lo he escrito en mal orden, pero la idea es que el número de letras sean ese.

Los casos base buenos serían: aab, aac, abb, bbc, acc, bcc.

Que se corresponden con que haya 2,1 y 0 letras de cada símbolo del alfabeto.

#23 A mi no me suena, pero yo soy informático y esta puta asignatura (TALF) es lo peor que me han podido echar en cara pfff :(

TBT

#23 esta de gramáticas y tal es más rollo de hacer problemas, donde vi lo de Gödel era un puraco infumable de teoria, horrible vaya, pero si estás en mates lo mismo te mola.

Si te piden demostrar informalmente, con comrpobar q genera palabras del lenguaje y q rechaza las palabras q no son del lenguaje te sobra. Vi a echarle un ojo a ver si me acuerdo de algo.

Eso de q el tamaño de las palabras es múltiplo de 3 es falso, porque pejemplo "aaab" y "aaaab" pertenecen al lenguaje. Lo he pensado un poco y lo único q se me ocurre es descomponer la gramática en 6 casos independientes (los q pones en #1) y q la primera regla sea del rollo
S --> S' | S'' | S''' | S'''' | S''''' | S''''''

Yo me pediría una tutoría entre varios y q os lo haga en el despacho xd

MaKi

Yo hice el martes este:

http://informaticosuah.forogeneral.es/board/download/file.php?id=244

He aprobado fijo, por que ya he comparado resultados y el autómata de pila que es lo que más vale, lo he clavado. La puta pregunta ocupa me ocupó 4 caras, es un coñazo, pero fácil si has estudiado xD

Thanat0s

#25 Tienes razón, se me ha ido la pinza, pff, mañana le echaré un vistazo a todo.

LOc0

Hola. He estado mirándolo bastante rato porque tenía este tema muy oxidado y no sé, apostaría levemente por un enunciado ambiguo. Me explico: la gramática {an bn cn | n>=0} NO es independiente de contexto (demostración en http://en.wikipedia.org/wiki/Pumping_lemma_for_context-free_languages#Usage_of_the_lemma )

Ahora bien, la gramática {ai bj ck | i,j,k>=0} es regular (tipo3) y se ve claramente porque corresponde con la ER abc*

El problema viene con {ai bj ck | i,j,k>=0, i<>j, i<>k, j<>k}, que es la que menciona el enunciado. (He probado mil historias en un papel y yo juraría que esta gramática NO es independiente del contexto, por mucho que descompongas en 6 casos (las permutaciones de i,j,k)).

Así que tirando de Occam, ¿no podría ser que el enunciado quisiera decir esto?

Sea el conjunto abc* \ {an bn cn | n>=0} de las cadenas de aes seguidas de bes seguidas de ces tales que el número de aes, bes y ces NO TIENE POR QUÉ SER IGUAL Define una GI para este conjunto y demuestra informalmente que la gramática es correcta.

De todas formas, seguiremos investigando ;)...

Salu2 ;)

Soltrac

Dios vuestra asignatura de teoría de autómatas es super chunga XDDDD.

Yo recuerdo q en la mía no había exámenes y había q entregar solo unos ejercicios sencillitos cada 2 semanas.

Vamos, q no se ni de q estais hablando xDDDDDD.

Thanat0s

#28 Jeje, gracias por las aclaraciones.

Respecto al enunciado, no creo que quiera decir eso, a veces son un tanto ambiguos, pero en este caso y conociendo al profesor, creo que quiere decir: i<>j, i<>k, j<>k.

Ostia puta, me acabo de dar cuenta de una cosa mientras te escribía para responderte.

Si nos ceñimos a la definición teórica, lo que se hace es quitar al conjunto formado por abc* el conjunto formado por las palabras que tienen igual número de aes, que de bes y de ces, lo que te queda por narices es el conjunto de palabras que no tendrán igual número de aes=bes=ces, pero eso no quita que puedas tener aes=bes o bes=ces o aes=ces, es decir iguales dos a dos, pero no las 3 iguales.
El caso es que esto sólo aumenta el número de casos... pffffffff xD

Madre del amor hermoso, en cuanto me ponga intento hacer lema de bombeo a ver si consigo demostrar que esta mierda no es GI.

Edit: vale, acabo de dar los apuntes y estos ejercicios son del tema 4, el lema de bombeo para GI's lo damos en el tema 7, por tanto no lo puedo usar, porque a esa altura del curso no lo conocíamos...
ARG!

Usuarios habituales