Napraw liczbę całkowitą i alfabet Σ = { 0 , 1 } . Zdefiniuj D F A ( n ) jako zbiór wszystkich automatów skończonych w stanach n ze stanem początkowym 1. Rozważamy wszystkie DFA (nie tylko połączone, minimalne lub nie-zdegenerowane); w ten sposób | D F A ( n ) | = n 2 n 2 n .
Teraz rozważmy dwa łańcuchy i zdefiniujemy K ( x , y ) jako liczbę elementów D F A ( n ), które akceptują zarówno x, jak i y .
Pytanie: Jaka jest złożoność obliczania ?
To pytanie ma wpływ na uczenie maszynowe .
Edycja: Teraz, gdy jest nagroda za to pytanie, przypuszczam, że nieco większa precyzja w sformułowaniu jest w porządku. Dla , niech D F A ( n ) będzie zbiorem n 2 n 2 n automatów, jak zdefiniowano powyżej. Dla x , y ∈ { 0 , 1 } ∗ zdefiniuj K n ( x , y ) jako liczbę automatów w D F A ( n ), które akceptują oba i y . Pytanie: czy K n ( x , y ) można obliczyć w czasie p o l y ( n , | x | , | y | ) ?
Odpowiedzi:
Pytanie jest więc dość krótkie, ale bardzo interesujące. Przypuszczam, że wejście jest w jednoskładnikowa, a i w trybie binarnym (lub mamy problemy, jak wskazał odpowiedź Kai).x yn x y
Przede wszystkim, jeśli chcesz poznać przybliżoną wartość , możesz po prostu wygenerować kilka losowych DFA, a to da ci dobre przybliżenie. (Zastanawiam się, czy ta klasa złożoności ma nazwę).K(x,y)
Zatem znajomość wydaje się trudnym problemem. Jak wskazano w komentarzach a3_nm i Kaveh, pytanie jest odpowiednikiem określenia liczby automatów, dla których i iść do tego samego stanu. Oznaczę prawdopodobieństwo, że przejdą do tego samego stanu przez .x y pK(x,y) x y p
Aktualizacja: Niektóre rzeczy, które tu napisałem, nie były prawdziwe, teraz je naprawiłem.
Łatwo zauważyć, że . Mamy równość, jeśli to wszystkie zera, a to zero, z wyjątkiem ostatniego bitu, który jest 1. Czy istnieją inne przypadki? Nie wiem Jeśli na przykład jest pustym łańcuchem, , to .x y x y = 00 p = n + 1p≥1/n x y x y=00 p=n+1(n−1)n
Aby uprościć problem, zacząłem nawet myśleć o tym, co się dzieje, jeśli i są jednoskładnikowa. Jeśli oba są co najmniej a ich różnica jest podzielna przez, a następnie . Czy istnieje prosta formuła dla wersji jednoargumentowej?y n n ! p = 1x y n n! p=1
źródło
Mogę bardzo nie rozumieć tego, ale stwierdziłeś, że jest naprawiony, więc wszystkie DFA o tym rozmiarze można uznać za wstępnie obliczone i przechowywane w łatwo symulowalnym formacie. Oblicz w następujący sposób:K.n K
Na wejściu , gdziey x , y ∈ Σ ∗x y x,y∈Σ∗
za. symuluj to dla obu słów (ten krok to )O(|xy|)
b. przyrost jeśli oba przebiegi symulacji są akceptowanec
W sumie obliczenia mają złożoność liniową. Odpowiedź jest zupełnie inna dla .K(n,x,y)
źródło