Charakterystyka dla której nie jest CFL?

16

Jest to standardowy dowód w kursach z automatami, że dla i że nie jest językiem bezkontekstowym.L=Σ|Σ|2S(L)={ww:wL}

Prawdą jest również, że dla każdego skończonego , jest skończone (a zatem CFL). Zgaduję, że jest nieskończony i regularny nie jest „wystarczający”, aby nie był CFL. Edycja : a co z bez CFL ?LS(L)LS(L)L

Czy istnieje jakaś charakterystyka tego, że ma S ( L ) nie będący CFL?LS(L)

Ryan
źródło
Jeśli dobrze rozumiem, należy zadecydować, biorąc pod uwagę zwykły język , czy S ( L ) jest pozbawiony kontekstu, czy nie. LS(L)
J.-E.
2
1. Czy możesz nam powiedzieć więcej o tym, jakiej charakterystyki szukasz? Czy szukasz algorytmu, który, biorąc pod uwagę , decyduje, czy S ( L ) jest pozbawiony kontekstu? Czy szukasz warunków na L, które wystarczą, aby S ( L ) był pozbawiony kontekstu? Jaką formę chciałbyś przyjąć charakterystykę? 2. Jeśli po kilku dniach nie otrzymasz odpowiedzi i wolisz zobaczyć to na CSTheory.SE, możesz oflagować ją dla uwagi moderatora i poprosić o migrację. LS(L)LS(L)
DW
@DW 1. Oba byłyby w porządku, ale wolałbym odpowiednie warunki. 2. Dzięki za wskazówkę!
Ryan
1
@ Ryan tylko wystarczające warunki? Oto kilka: (a) L jest regularne i dla każdego w L , w = w R (b) L jest CF i dla wszystkich n , L Σ n jest albo puste, albo równe Σ n . Nie są to jednak zdecydowanie konieczne. Jeśli nie znajdziesz tutaj odpowiedzi, przenieś pytanie do cstheory. Jestem naprawdę ciekawa niezbędnych i wystarczających warunków! wLw=wRnLΣnΣn
aelguindy
Nieskończony i regularny rzeczywiście nie wystarcza, aby S ( L ) nie CF. Jeśli Σ = { , b , c } , L = * wówczas S ( L ) = ( ) * , który jest regularny, a więc CF. LS(L)Σ={a,b,c},L=aS(L)=(aa)
chi

Odpowiedzi:

2

Bardziej rozbudowany komentarz z przypuszczeniem, ale tutaj jest warunek, który wydaje się wychwytywać problem, w kontekście zwykłego dla S ( L ) bez kontekstu.LS(L)

Warunek W minimalnym DFA dla L każda ścieżka akceptacji zawiera najwyżej jedną pętlę.AL

Wyjątek: dozwolone są dwie pętle, jeśli ich etykiety i etykieta prefiksu przed pierwszą pętlą wszystkie dojeżdżają do pracy, a sufiks po drugiej pętli jest pusty. Na przykład jest w porządku.aab(aa)

Przypomnij sobie, że dwa słowa i v dojeżdżają, jeśli są mocami tego samego słowa t . Możemy założyć, że sufiks jest pusty, ponieważ nie może być niepusty i dojeżdżać do pracy z etykietą drugiej pętli w DFA.uvt

Sufficient Assume the condition, you build a PDA for L by treating each accepting pattern xuy of A where u labels a simple loop. We want to accept words of the form xunyxuny. We read x, push a symbol for every occurence of u, read yx, then pop a symbol for every occurence of u, and finally read y.

About the exception, if we are in this case, a basic accepting path is of the form xuyv where u,v are the labels of the loops. We accept words of the form xunyvmxunyvm, but by assumption (x,u,v commute) it is the same as unxyunvmxyvm, which can be done by a PDA: push ntimes (dla wystąpień ), czytaj x y , pop n razy, push m razy (dla v ), czytaj x y , pop m razy.uxynmvxym

Końcowy PDA to połączenie PDA dla każdego wzorca.

Konieczne (ręczne falowanie) Jeśli istnieje ścieżka z dwiema pętlami, nawet w najprostszym przypadku, w którym musisz wziąć jedną, a następnie drugą (na przykład ), musisz pamiętać, ile razy każda z nich została wzięta, ale struktura stosu zapobiega powtarzaniu ich w tej samej kolejności. Zauważ, że fakt, że DFA jest minimalny, jest ważny w charakterystyce, aby uniknąć użycia dwóch pętli, gdy jedna może wystarczyć.ab

For now the necessary part is only a conjecture, and more exceptions could be needed to get the exact condition, I would be interested in counter-examples.

Denis
źródło
"and then reading w again, popping a symbol for every loop taken in the second occurence of the word" - but there are infinitely many such w! Unless I'm reading your argument incorrectly.
Ryan
@Ryan the number of "patterns" xuy where u labels a loop is finite, so we can guess which one we are reading.
Denis
I edited to clarified this part.
Denis
The condition looks similar to me to another one I had in mind: S(L) is context free iff there do not exist words u,v,w1,w2, such that w1 and w2 are not prefix of each others and u(w1+w2)vL.
holf
@holf yours does not seem to work for ab
Denis