Liczba słów w zwykłym języku

17

Według Wikipedii , dla każdego zwykłego języka istnieją stałe i wielomiany takie, że dla każdego liczby słów o długości w spełnia równanieLλ1,,λkp1(x),,pk(x)nsL(n)nL

sL(n)=p1(n)λ1n++pk(n)λkn .

Język L={02nnN} jest zwykły ( (00) pasuje do niego). sL(n)=1 iff n jest parzyste, a sL(n)=0 przeciwnym razie.

Nie mogę jednak znaleźć λi i pi (które muszą istnieć powyżej). Ponieważ sL(n) musi być różniczkowalna i nie jest stała, musi jakoś zachowywać się jak fala, a ja nie widzę, jak możesz to zrobić z wielomianami i funkcjami wykładniczymi, nie kończąc na nieskończonej liczbie sum, takich jak w rozszerzenie Taylora. Czy ktoś może mnie oświecić?

Alex ten Brink
źródło
znasz nazwę tego twierdzenia?
Artem Kaznatcheev
@ArtemKaznatcheev: nie, nie mam pojęcia. Wikipedia nie podaje również odniesienia niestety :(
Alex ten Brink
Mówiąc bardziej ogólnie: liczba słów o określonej długości w zwykłym języku
Gilles „SO- przestań być zły”

Odpowiedzi:

14

Czy dla swojego języka możesz wziąć , , , , a dla ? Artykuł w Wikipedii nic nie mówi o tym, że współczynniki są dodatnie lub całkowite. Suma moich wyborów top0(x)=1/2λ0=1p1(x)=1/2λ1=1pi(x)=λi=0i>1

1/2+1/2(1)n=1/2(1+(1)n)

która wydaje się wynosić 1 dla parzystego i 0 dla nieparzystego . Rzeczywiście, dowód indukcji wydaje się prosty.nn

Patrick87
źródło
Ach tak, oczywiście, zapomniałem o naprzemiennych znakach minus. Głosuję, gdy dzień się skończy - osiągnąłem limit głosów.
Alex ten Brink
Nie potrzeba indukcji dla tego roszczenia.
Raphael
@Raphael To prawda, ale z drugiej strony moje stwierdzenie jest tym bardziej dokładne.
Patrick87
11

@ Patrick87 daje świetną odpowiedź na konkretny przypadek, pomyślałem, że dam radę, jak znaleźć sL(n) w bardziej ogólnym przypadku dowolnego języka L który może być reprezentowany przez nieredukowalny DFA (tj. Jeśli jest to możliwe dostać się do dowolnego stanu z dowolnego stanu). Pamiętaj, że twój język jest tego typu.


Dowód twierdzenia o nieredukowalnych DFA

Niech będzie macierzą przejściową twojego m- stanu DFA, ponieważ jest nieredukowalna, macierz jest normalna i ma pełną bazę własną | λ 1. . . | λ m . Niech | Być przyjąć wektor: tj I | Jest 1 jeśli ja to stan zaakceptować, a 0 w przeciwnym razie. WLOG zakłada, że | 1 jest stan początkowy, a ponieważ mamy pełną eigenbasis wiemy, że | 1 = c 1 |Dm|λ1...|λm|Ai|Ai|1 niektórych współczynników c 1 . . . c m (uwaga, że c i = X I | I ).|1=c1|λ1+...+cm|λmc1...cmci=λi|i

Teraz możemy udowodnić ograniczony przypadek twierdzenia w pytaniu (ograniczony do nieredukowalnych DFA; jako ćwiczenie uogólnij ten dowód na całe twierdzenie). Ponieważ jest macierzą przejściową D | 1 jest wektorem stanów osiągalny po przeczytaniu dowolny jeden znak, D 2 | 1 jest taka sama dla dwóch znaków, itd. Biorąc pod uwagę, wektor | x , | x jest po prostu sumą składników | x że są zaakceptować stany. A zatem:DD|1D2|1|xA|x|x

sL(n)=A|Dn|1=A|Dn(c1|λ1...cm|λm)=c1λ1nA|λ1+...+cmλmnA|λm=A|λ1λ1|1λ1n+...+A|λmλm|1λmn=p1λ1n+...+pmλmm

Teraz wiemy, że dla nieredukowalnego DFA stanu m, będą wielomianami zerowego rzędu (tj. stałymi), które zależą od DFA i λ 1 . . . λ m będą wartości własnych macierzy transformacji.p1...pmλ1...λm

Uwaga ogólna

Jeśli chcesz, aby udowodnić to twierdzenie dla arbitralnej DFA, a następnie trzeba będzie spojrzeć na rozkład Schur z , a następnie wielomiany niezerowych stopnia pojawi się ze względu na nilpotent warunkach. Nadal jest to oświecające, ponieważ pozwoli ci ograniczyć maksymalny stopień wielomianów. Znajdziesz również związek między tym, jak skomplikowane są wielomiany, a tym, ile λs będziesz mieć.Dλ


Zastosowanie do konkretnego pytania

Dla Twojego języka możemy wybrać DFA z macierzą przejścia:L

D=(0110)

i zaakceptuj wektor:

A=(10)

Znajdź wektory własne i ich wartości własne pomocą | λ 1= 1λ1=1iλ2=-1z| λ2=1|λ1=12(11)λ2=1. Możemy to wykorzystać, aby znaleźćP1=1/2igrupy p2=1/2. Dać nam:|λ2=12(11)p1=1/2p2=1/2

sL(n)=12+12(1)n
Artem Kaznatcheev
źródło
Może opublikujesz to tutaj ?
Raphael
@ Rafael, który został zapytany, gdy zastanawiałem się nad tym i piszę swoją odpowiedź, więc nie wiedziałem o tym, kiedy go pytałem.
Artem Kaznatcheev
6

Continuing Artem's answer, here is a proof of the general representation. As Artem shows, there is an integer matrix A and two vectors x,y such that

sL(n)=xTAny.
(The vector x is the characteristic vector of the start state, the vector y is the characteristic vector of all accepting state, and Aij is equal to the number of transitions from state i to state j in a DFA for the language.)

Jordan's theorem states that over the complex numbers, A is similar to a matrix with blocks of one of the forms

(λ),(λ10λ),(λ100λ100λ),(λ1000λ1000λ1000λ),
If λ0, then the nth powers of these blocks are
(λn),(λnnλn10λn),(λnnλn1(n2)λn20λnnλn100λn),(λnnλn1(n2)λn2(n3)λn30λnnλn1(n2)λn200λnnλn1000λn),
Here's how we got to these formulas: write the block as B=λ+N. Successive powers of N are successive secondary diagonals of the matrix. Using the binomial theorem (using the fact that λ commutes with N),
Bn=(λ+n)N=λn+nλn1N+(n2)λn2N2+.
When λ=0, the block is nilpotent, and we get the following matrices (the notation [n=k] is 1 if n=k and 0 otherwise):
([n=0]),([n=0][n=1]0[n=0]),([n=0][n=1][n=2]0[n=0][n=1]00[n=0]),([n=0][n=1][n=2][n=3]0[n=0][n=1][n=2]00[n=0][n=1]000[n=0])

Summarizing, every entry in An is either of the form (nk)λnk or of the form [n=k], and we deduce that

sL(n)=ipi(n)λi(n)+jcj[n=j],
for some complex λi,cj and complex polynomials pi. In particular, for large enough n,
sL(n)=ipi(n)λi(n).
Yuval Filmus
źródło
Thank you for the general treatment! You should consider combining your answer with mine and posting it as a full answer to this question. I think it would be more helpful than the current answer there.
Artem Kaznatcheev