Jaka liczba języków jest akceptowana przez DFA o rozmiarze


19

Pytanie jest proste i bezpośrednie: w przypadku ustalonego , ile (różnych) języków jest akceptowanych przez DFA o rozmiarze n (tj. N stanów)? Formalnie stwierdzę to:nnn

Zdefiniuj DFA jako , gdzie wszystko jest jak zwykle, a δ : Q × Σ Q jest funkcją (być może częściową). Musimy to ustalić, ponieważ czasami tylko całkowite funkcje są uważane za prawidłowe.(Q,Σ,δ,q0,F)δ:Q×ΣQ

Dla każdego zdefiniuj relację (równoważność) n na zbiorze wszystkich DFA jako: A n B, jeżeli | A | = | B | = n i L ( A ) = L ( B ) .n1nAnB|A|=|B|=nL(A)=L(B)

Pytanie brzmi zatem: dla danego , jaki jest indeks n ? To znaczy, jaki jest rozmiar zestawu { L ( A ) A  jest DFA o rozmiarze  n } ?nn{L(A)A is a DFA of size n}

Nawet gdy jest funkcją całkowitą, nie wydaje się to łatwe (przynajmniej dla mnie). Wykres może nie być połączony, a stany w podłączonym składniku zawierające stan początkowy mogą być wszystkie akceptowalne, więc na przykład istnieje wiele wykresów o rozmiarze n akceptującym Σ . To samo z innymi trywialnymi kombinacjami dla pustego języka i innych języków, których minimalny DFA ma mniej niż n stanów.δnΣn

(Naiwna) rekurencja też nie działa. Jeśli weźmiemy DFA o rozmiarze i dodamy nowy stan, to jeśli chcemy zachować determinizm i połączyć nowy wykres (aby uniknąć trywialnych przypadków), musimy usunąć przejście, aby połączyć nowy stan, ale w takim przypadku możemy utracić oryginalny język.k

jakieś pomysły?

Uwaga. Ponownie zaktualizowałem pytanie, formalnym oświadczeniem i bez poprzednich elementów rozpraszających uwagę.


Wyjaśnij: czy masz na myśli „ile różnych języków można zdefiniować za pomocą stanów?”, Gdzie język definiuje się za pomocą n stanów, jeśli istnieje DFA z n stanami, które je akceptują. Ponadto w przypadku wyrażeń regularnych wyrażenie regularne „a * aaaaaa” z pewnością ma> 1 konkatenacje, ale DFA potrzebuje tylko jednego stanu (dwa, jeśli potrzebujesz osobnego ujścia), prawda? nnn
Evgenij Thorstensen

Przepraszamy: Na przykład wyrażenia regularnego powinna to być „a a a a a *”, ponieważ pozwala to na dowolną liczbę.
Evgenij Thorstensen

Definicja wydaje się bardzo powiązana z pojęciem „głębokości kropek”, z tym wyjątkiem, że pojęcie to zwykle stosuje się do języków bez gwiazd (prawdopodobnie z powodów, które przedstawił @Evgenij Thorstensen). c(r)
mhum,

1
Trywialna obserwacja: stanów można użyć do zdefiniowania co najmniej 2 n różnych języków. n+12n
Evgenij Thorstensen

2
Możemy uzyskać trochę więcej, więc wydaje się OK. Ale liczba automatów n-stanowych wynosi około n c n 2 n = 2 c n log n + n = 2 Θ ( n log n ) (przy założeniu | Σ | = c ). Czy możemy uzyskać 2 ω ( n ) ? 2Ω(n)ncn2n=2cnlogn+n=2Θ(nlogn)|Σ|=c2ω(n)
Kaveh

Odpowiedzi:


20

Myślę, że to pytanie zostało zbadane wcześniej. Mike Domaratzki napisał ankietę na temat badań w tej dziedzinie: „Wyliczenie języków formalnych”, Bull. EATCS, vol. 89 (czerwiec 2006), 113-133: http://www.eatcs.org/images/bulletin/beatcs89.pdf


4
Artykuł dotyczy dokładnie zadanego pytania, od strony 120 i kolejnych. Jest to funkcja , a papier daje raczej ciasne ograniczenia (zbliżone do tego, co Kaveh wspomina powyżej), chociaż nie wdychałem wszystkich szczegółów. gk(n)
Evgenij Thorstensen

1
W rzeczy samej. To, czego chcemy, to lub, według podanej zależności, f k ( n ) , która jest liczbą par nieizomorficznych minimalnych DFA z n stanami nad k alfabetem. Nie przyjrzałem się temu też szczegółowo, ale wydaje się, że znane są tylko granice, a nie dokładne ilości. gk(n)fk(n)nk
Janoma

6
I od tego samego autora mamy artykuł na temat liczby odrębnych języków akceptowanych przez automat skończony z n stanami , który podaje nawet wyraźne obliczenia dla ( 1 n 10 ), g 2 ( n ) ( 1 n 6 ) ig 3 ( n ) ( 1 n 4 ). g1(n)1n10g2(n)1n6g3(n)1n4
Janoma
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.