Определим язык L
Я пытался пересечь L
formal-languages
context-free
formal-grammars
Евгений Елтишев
источник
источник
Ответы:
Это без контекста. Вот грамматика:
S→A|B|AB|BA
A→a|aAa|aAb|bAb|bAa
B→b|aBa|aBb|bBb|bBa
S → A | Б | A B | B A 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 a
A генерирует слова нечетной длины с a в центре. То же самое для B и б .A a B b
Я представлю доказательство того, что эта грамматика верна. Пусть L = { a , b } ∗ ∖ { w w ∣ w ∈ { a , b } ∗ } (язык в вопросе).L={a,b}∗∖{ww∣w∈{a,b}∗}
Теорема. L = L ( S ) . Другими словами, эта грамматика порождает язык в вопросе.L=L(S)
Доказательство. Это , конечно , имеет место для всех нечетных слов длины, так как эта грамматика порождает все нечетные длины слов, как это делает L . Итак, давайте сосредоточимся на четных словах.L
Предположим, что x ∈ L имеет четную длину. Я покажу, что x ∈ L ( G ) . В частности, я утверждаю, что x можно записать в форме x = u v , где и u, и v имеют нечетную длину и разные центральные буквы. Таким образом, x может быть получен из A B или B A (в зависимости от того, является ли центральная буква u буквой a или b ). Обоснование претензии: пусть я буква хx∈L x∈L(G) x x=uv u v x AB BA u a b i x обозначим x i , так что x = x 1 x 2 ⋯ x n . Тогда, поскольку x отсутствует в { w w ∣ w ∈ { a , b } n / 2 } , должен существовать некоторый индекс i, такой что x i ≠ x i + n / 2 . Следовательно, мы можем взять u = x 1 ⋯ x 2 i -xi x=x1x2⋯xn x {ww∣w∈{a,b}n/2} i xi≠xi+n/2 1 иv= x 2 i ⋯ x n ; центральная букваuбудет x i , а центральная букваvбудет x i + n / 2 , поэтому по построениюu,vимеют разные центральные буквы.u=x1⋯x2i−1 v=x2i⋯xn u xi v xi+n/2 u,v
Далее предположим, что x ∈ L ( G ) имеет четную длину. Я покажу , что мы должны иметь х ∈ L . Если x имеет четную длину, он должен быть получен из A B или B A ; без ограничения общности, предположу , что выводимо из A B , и х = у v , где у выводим из А и V выводим из B . Если u , v имеют одинаковую длину, то мы должны иметь u ≠x∈L(G) x∈L x AB BA AB x=uv u A v B u,v v (поскольку они имеют разные центральные буквы), поэтому x ∉ { w w ∣ w ∈ { a , b } ∗ } . Итак, предположим , что u , v имеют разную длину, скажем, длину ℓ и n - ℓ соответственно. Тогда их центральные буквы - это u ( ℓ + 1 ) / 2 и v ( n - ℓ + 1 ) / 2 . Тот факт, что тыu≠v x∉{ww∣w∈{a,b}∗} u,v ℓ n−ℓ u(ℓ+1)/2 v(n−ℓ+1)/2 ,vu,v have different central letters means that u(ℓ+1)/2≠v(n−ℓ+1)/2u(ℓ+1)/2≠v(n−ℓ+1)/2 . Since x=uvx=uv , this means that x(ℓ+1)/2≠x(n+ℓ+1)/2x(ℓ+1)/2≠x(n+ℓ+1)/2 . If we attempt to decompose xx as x=ww′x=ww′ where w,w′w,w′ have the same length, then we'll discover that w(ℓ+1)/2=x(ℓ+1)/2≠x(n+ℓ+1)/2=w′(ℓ+1)/2w(ℓ+1)/2=x(ℓ+1)/2≠x(n+ℓ+1)/2=w′(ℓ+1)/2 , i.e., w≠w′w≠w′ , so x∉{ww∣w∈{a,b}∗}x∉{ww∣w∈{a,b}∗} . In particular, it follows that x∈Lx∈L .
источник
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: S→E∣U∣ϵE→AB∣BAA→ZAZ∣aB→ZBZ∣bU→ZUZ∣ZZ→a∣b
источник