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 ) .n≥1∼nA∼nB|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 } ?n∼n{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=2cnlog⁡n+n=2Θ(nlog⁡n)|Σ|=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)1≤n≤10g2(n)1≤n≤6g3(n)1≤n≤4
— 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.