Es el complemento de {ww | ...} sin contexto?


14

Defina el lenguaje L como L={a,b}{www{a,b}} . En otras palabras, L contiene las palabras que no se pueden expresar como alguna palabra repetida dos veces. ¿Es L contexto o no?

He intentado intersectar con a b a b Labab , pero todavía no puedo probar nada. También miré el teorema de Parikh, pero no ayuda.


Respuestas:


28

Es libre de contexto. Aquí está la gramática:

A a | a A a | a A b | b A b | b A a B b | a B a | a B b | b B b | b B aSA|B|AB|BA
Aa|aAa|aAb|bAb|bAa
Bb|aBa|aBb|bBb|bBa

genera palabras de longitud impar con a en el centro. Lo mismo para B y b .AaBb

Presentaré una prueba de que esta gramática es correcta. Deje (el idioma en la pregunta).L={a,b}{www{a,b}}

Teorema. . En otras palabras, esta gramática genera el lenguaje en la pregunta.L=L(S)

Prueba. Esto sin duda es válido para todas las palabras de longitud impar, ya que esta gramática genera todas las palabras impares del largo, al igual que . Así que centrémonos en palabras de longitud par.L

Supongamos que tiene una longitud par. Mostraré que x L ( G ) . En particular, afirmo que x se puede escribir en la forma x = u v , donde u y v tienen una longitud impar y letras centrales diferentes. Por lo tanto, x puede derivarse de A B o B A (según si la letra central de u es a o b ). Justificación del reclamo: Sea la i ésima letra de xxLxL(G)xx=uvuvxABBAuabix be denoted xi, so that x=x1x2xn. Then since x is not in {www{a,b}n/2}, there must exist some index i such that xixi+n/2. Consequently we can take u=x1x2i1 and v=x2ixn; the central letter of u will be xi, and the central letter of v will be xi+n/2, so by construction u,v have different central letters.

Luego suponga que tiene una longitud par. Voy a demostrar que debemos tener x L . Si x tiene una longitud par, debe ser derivable de A B o B A ; sin pérdida de generalidad, supongamos que es derivable de A B , y x = u v donde u es derivable de A y v es derivable de B . Si u , v tienen las mismas longitudes, entonces debemos tener u xL(G)xLxABBAABx=uvuAvBu,vuv (ya que tienen letras centrales diferentes), entonces x{www{a,b}}. So suppose u,v have different lengths, say length and n respectively. Then their central letters are u(+1)/2 and v(n+1)/2. The fact that u,v have different central letters means that u(+1)/2v(n+1)/2. Since x=uv, this means that x(+1)/2x(n++1)/2. If we attempt to decompose x as x=ww where w,w have the same length, then we'll discover that w(+1)/2=x(+1)/2x(n++1)/2=w(+1)/2, i.e., ww, so x{www{a,b}}. In particular, it follows that xL.


2
I've edited the answer to provide a proof of correctness for this grammar, based upon the hint/sketch given by Evgeny Eltishev. Hopefully it should be clearer now why this works.
D.W.

Can it generate "aabb" ?
manasij7479

1
@manasij7479 Yes: SABaBa(aBb)aabb.
J.-E. Pin

3

This language is context free it was proved in the following paper:

Tomaszewski, Zach. "A Context-Free Grammar for a Repeated String." Journal of Information and Computer Science, 2012 (PDF).

The grammar is as follows:

SEABUZEUϵABBAZAZaZBZbZUZZab

8
Welcome! The following is not a criticism of this answer. The Journal of Information and Computer Science is published by "World Academic Union", which is on Beall's list of predatory open access publishers. It's sad that there are companies in the world who will take relatively large amounts of people's money to publish papers that do nothing more than solve undergraduate-level exercises.
David Richerby

I don't have enough reputation to comment on the above answer. But that grammar seems wrong to me. It cannot generate "aaab" which is in the language.
A. Mashreghi

1
After performing CFGCNFCYK (you should try it), SABaAaBaaaBaaab, so it seems it can generate aaab.
Evil

You right it does
A. Mashreghi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.