Czy istnieją permutacje i wielkość wielomianowa (w ) gramatyka bezkontekstowa opisująca język skończony zamiast alfabetu ?
AKTUALIZACJA: Dla jednej permutacji jest to możliwe. jest odwróceniem lub względnie niewielką modyfikacją odwrócenia.
Czy istnieją permutacje i wielkość wielomianowa (w ) gramatyka bezkontekstowa opisująca język skończony zamiast alfabetu ?
AKTUALIZACJA: Dla jednej permutacji jest to możliwe. jest odwróceniem lub względnie niewielką modyfikacją odwrócenia.
Odpowiedzi:
Chomsky normalna forma
CFG jest w CNF (normalnej formie Chomsky'ego), jeśli tylko produkcje są w tej formieA→a i ; gramatyka może być przeniesiona do CNF tylko z kwadratowym powiększeniem.A→BC
Dla gramatyki w CNF, mamy ładne podsłowo Lemat: Jeżeli generuje słowo , a następnie dla każdego , istnieje podsłowo stanowi długości , który jest generowany przez pewien brak zacisku . Dowód: zejdź (binarne) drzewo składniowe, zawsze przechodząc do potomka, który generuje dłuższe podmowę. Jeśli zacząłeś od słowa o rozmiarze co najmniej , nie możesz zejść poniżej .G G w ℓ≤w x w ℓ/2≤|x|<ℓ G ℓ ℓ/2
Rozwiązanie
Bez utraty ogólności możemy założyć, że gramatyka dla (taki język ze specyficznym ) ma postać normalną Chomsky'ego. Język składa się ze słów dla wszystkich .Ln π1,π2∈Sn Ln w(x)=xπ1(x)π2(x) x∈{0,1}n
Używając podmenu Lemma, dla każdego możemy znaleźć podciąg o długości generowany przez jakiś symbol i występujący w pozycji .w(x) s(x)
Załóżmy, że i . Ponieważ , podsłowo może nie przecinają zarówno częścią a części ; możemy założyć, że jest on rozłączny od części . Zatem ma postać . Oznacza to, że generuje dokładnie jeden ciąg, a mianowicie . Dlatego .p(x)=p(y) A(x)=A(y) |s(x)|<n s(x) x π2(x) w(x) x w(x) xαs(x)β A(x) s(x) s(x)=s(y)
Teraz przecina albo albo w co najmniej miejscach, a tym samym określa co najmniej bity . Dlatego najwyżej ciągów może mieć i . Ponieważ istnieje co najwyżej możliwości dla , otrzymujemy, że istnieją co najmniej różne nieterminale w gramatyce.s(y) π1(y) π2(y) n/4 n/4 y 23n/4 y∈{0,1}n p(x)=p(y) A(x)=A(y) 3n p(y)
Komentarz: Ten sam dowód działa, jeśli , tj. Są dowolnymi permutacjami na zbiorze wszystkich bitowych słów. Biorąc pod uwagę bity , istnieją dokładnie preimages .π1,π2∈S{0,1}n n n/4 πi(y) 23n/4 y
Więcej przykładów
Za pomocą tej samej metody można udowodnić, że język, w którym każdy znak pojawia się dokładnie dwa razy, wymaga CFG wielkości wykładniczej wielkości alfabetu. Możemy „dwukrotnie” zastąpić dowolnym podzbiorem innym niż czterema trywialnymi (ignorując , albo nie zawierającego żadnego z lub wszystkich).N 0 N≥1
Byłbym wdzięczny za odniesienie do tej metody dowodu.
źródło