EDYTOWANO, ABY DODAĆ : Na to pytanie zasadniczo udzielono odpowiedzi; zobacz ten wpis na blogu, aby uzyskać więcej informacji. Dziękujemy wszystkim, którzy opublikowali tutaj komentarze i odpowiedzi.
PYTANIE ORYGINALNE
Jest to, mam nadzieję, mądrzejsza i lepiej poinformowana wersja pytania, które zadałem na MathOverflow. Kiedy zadałem to pytanie, nie znałem nawet nazwy dziedziny matematyki, w której tkwi mój problem. Teraz jestem całkiem pewien, że leży ona w kombinatoryce algorytmicznej na słowach częściowych. (Najnowsza książka na ten temat tutaj .)
Chcę zrobić listę słów listy. Każde słowo ma dokładnie długość. Umowa jest, jeśli jest na liście, gdzie jest zatem symbolem wieloznacznym / nieważnym nigdy więcej nie pojawi się na liście. (To samo dotyczy, jeśli, albo jeśli i stąd zabronione jest podtytuł .)
Przykład gdzie i :
<- zabronione, ponieważ pojawił się w linii powyżej
<- zabronione, ponieważ pojawił się w pierwszej linii
Znaleziona przeze mnie literatura na temat „częściowych słów, których można uniknąć”, jest nieskończona - ostatecznie nie można uniknąć jakiegoś wzoru słów, jeśli rozmiar słowa jest wystarczająco duży. Chciałbym znaleźć skończone wersje takich twierdzeń. Pytanie:
Biorąc pod uwagę częściowe słowo formy w alfabecie litery, ile słów długości unikaj go i czy można je jawnie wytworzyć w czasie wielomianowym?
Nie oczekuję, że powyższe pytanie będzie trudne i, chyba że brakuje mi subtelności, sam bym mógł ją obliczyć. Prawdziwym powodem, dla którego publikuję na tej stronie jest to, że muszę dowiedzieć się znacznie więcej o właściwościach takich list słów dla mojej aplikacji, dlatego mam nadzieję, że ktoś odpowie na kolejne pytanie:
Czy zbadano to ogólnie? Co rozważają niektóre dokumenty, nie tylko to, czy częściowe słowo jest w końcu nieuniknione, ale „ile czasu” zajmuje, zanim staje się nieuniknione?
Dzięki.
źródło
Odpowiedzi:
Oto szczególny przypadek: liczba dwójkowych słów długościk tak, że nie pojawiają się dwa kolejne F(k+3) , gdzie F(n) jest nth Liczba Fibonacciego (od F(1)=1,F(2)=1 ). Dowodem jest reprezentacja Zeckendorfa .
EDYCJA: Możemy rozszerzyć tę początkową specjalną skrzynkę na nieco większy specjalny przypadeka◊0a . Rozważ ciągi długościk ponad alfabet wielkości l+1 tak, że list a nie pojawia się dwa razy pod rząd. Pozwolićf(k) być liczbą takich ciągów (które nazywamy „prawidłowymi”). Twierdzimy, że:
Możesz sprawdzić, czy poniższy formularz jest zamknięty dla powyższej rekurencji: gdzie rozumiemy gdy .
EDYCJA 2: Wyrzućmy jeszcze jedną sprawę - a . łańcuchy nad alfabetem elementowym, który nie zawiera podłańcucha , „ważny”, a oznacza zbiór prawidłowych łańcuchów o długości . Ponadto, zdefiniujmy jako podzbiór składający się z łańcuchów zaczynających się na a na te, które nie zaczynają się na . Na koniec niech,,.◊0b,a≠b l ab Sk k Tk Sk b Uk b f(k)=|Sk| g(k)=|Tk| h(k)=|Uk|
Obserwujemy i . Następnie wnioskujemy o następujących nawrotach: Pierwszy wynika z faktu, że dodanie na początku dowolnego elementu daje element . Drugi wynika z obserwacji, że możemy zbudować element , dodając dowolny znak oprócz z przodu dowolnego elementu lub dodając dowolny znak oprócz lub z przodu dowolnego elementu w .g(0)=0,h(0)=1,f(0)=1 g(1)=1,h(1)=l−1,f(1)=l
Następnie przestawiamy równania rekurencyjne, aby uzyskać:
Możemy uzyskać raczej nieprzejrzyste zamknięte rozwiązanie tego nawrotu, trochę się mijając z generowaniem funkcji lub, jeśli jesteśmy leniwi, kierujemy się prosto do Wolfram Alpha . Jednak przy odrobinie googlingu i przeszukiwania w OEIS , okazuje się, że faktycznie mamy: gdzie jest wielomianem drugiego rodzaju (!) .
źródło
Zupełnie inne podejście do pierwszego pytania ponownie wykorzystuje odpowiedzi na ostatnie pytanie dotyczące generowania słów w zwykłym języku : wystarczy zastosować te algorytmy dla długości w zwykłym języku gdzie jest alfabetem.k Σ∗aΣjbΣ∗ Σ
źródło
Zaktualizowano: ta odpowiedź jest niepoprawna :
przy założeniu, jest stała, można policzyć liczbę sposobów, wzór można dopasować: pierwszy symbol może być dopasowana w pewnej pozycji , i mają możliwości wcześniejszy, między a i dla pozostałej części łańcucha, przez co w sumie . Jak zauważył Tsuyoshi Ito w komentarzach, liczba ta nie jest liczbą różnych słów pasującychj a◊jb a 1≤i≤k−j−1 li−1 lj a b lk−j−i−1
W przypadku pierwszego pytania, przy założeniu, że nie jest ustalone, tzn. Że chcemy uniknąć osadzania słowa :j ab
W przypadku drugiego pytania nie mam wiele do zaproponowania; istnieje związek z osadzaniem słów, ale wyniki, które znam o złych sekwencjach dla Lemmy Higmana, nie mają natychmiastowego zastosowania.
źródło