BEARBEITEN AM 12.10.06:
ok, das ist so ziemlich die beste Konstruktion, die ich bekommen kann. Mal sehen, ob jemand bessere Ideen hat.
Satz. Für jedes gibt es einen ( 5 n + 12 ) -Zustand NFA M über Alphabeten Σ mit | Σ | = 5, so dass die kürzeste Kette, die nicht in L ( M ) enthalten ist, die Länge ( 2 n - 1 ) ( n + 1 ) + 1 hat .n(5n+12)MΣ|Σ|=5L(M)(2n−1)(n+1)+1
Dies ergibt .f(n)=Ω(2n/5)
Die Konstruktion ist mit der in Shallit ziemlich identisch , außer dass wir eine NFA direkt konstruieren, anstatt die Sprache zuerst durch einen regulären Ausdruck darzustellen. Lassen
.Σ={[00],[01],[10],[11],♯}
nΣ∗−{sn}sn is the following sequence (take n=3 for example):
s3=♯[00][00][01]♯[00][01][10]♯…♯[11][11][01]♯.
The idea is that we can construct an NFA consists of five parts;
- ein Starter , der sicherstellt, dass der String mit beginnt♯[00][00][01]♯;
- a terminator, which ensures the string ends with ♯[11][11][01]♯;
- a counter, which keeps the number of symbols between two ♯'s as n;
- an add-one checker, which guarantees that only symbols with the form ♯xx+1♯ appears; finally,
- a consistent checker, which guarantees that only symbols with the form ♯xy♯yz♯ can appear concurrently.
Note that we do want to accept Σ∗−{sn} instead of {sn}, so once we find out that the input sequence is disobeying one of the above behaviors, we accept the sequence immediately. Otherwise after |sn| steps, the NFA will be in the only possible rejecting state. And if the sequence is longer than |sn|, the NFA also accepts. So any NFA satisfies the above five conditions will only reject sn.
It may be easy to check the following figure directly instead of a rigorous proof:
We start at the upper-left state. The first part is the starter, and the counter, then the consistent checker, the terminator, finally the add-one checker. All the arc with no terminal nodes point to the bottom-right state, which is an all time acceptor. Some of the edges are not labeled due to lack of spaces, but they can be recovered easily. A dash line represents a sequence of n−1 states with n−2 edges.
We can (painfully) verify that the NFA rejects sn only, since it follows all the five rules above. So a (5n+12)-state NFA with |Σ|=5 has been constructed, which satisfies the requirement of the theorem.
If there's any unclearliness/problem with the construction, please leave a comment and I'll try to explain/fix it.
This question has been studied by Jeffrey O. Shallit et al., and indeed the optimal value of f(n) is still open for |Σ|>1. (As for unary language, see the comments in Tsuyoshi's answer)
In page 46-51 of his talk on universality, he provided a construction such that:
Theorem. For n≥N for some N large enough, there is an n-state NFA M over binary alphabets such that the shortest string not in L(M) is of length Ω(2cn) for c=1/75.
Thus the optimal value for f(n) is somewhere between 2n/75 and 2n. I'm not sure if the result by Shallit has been improved in recent years.