Wie viele Wörter der Länge


9

EDITIERT ZUM HINZUFÜGEN : Diese Frage ist jetzt im Wesentlichen beantwortet; Weitere Informationen finden Sie in diesem Blogeintrag . Vielen Dank an alle, die hier Kommentare und Antworten gepostet haben.


URSPRÜNGLICHE FRAGE

Dies ist eine hoffentlich intelligentere und besser informierte Version einer Frage, die ich in MathOverflow gestellt habe. Als ich diese Frage stellte, wusste ich nicht einmal, in welchem ​​Bereich der Mathematik sich mein Problem befand. Jetzt bin ich mir ziemlich sicher, dass es in der algorithmischen Kombinatorik für Teilwörter liegt. (Aktuelles Buch zu diesem Thema hier .)

Ich möchte eine Liste von Wörtern auf l Buchstaben erstellen. Jedes Wort hat eine Länge von genau k . Der Deal ist, wenn ajb in der Liste ist, wobei ein Platzhalter / egal-Symbol ist, dann kann ajb nie wieder in der Liste erscheinen. (Dasselbe gilt, wenn a=b oder wenn j=0 und daher das verbotene Unterwort ab .)

Beispiel mit k=4 und l=5 :

abcd
bdce
dcba <- verboten, weildc in der Zeile über
aeed <erschien - verboten, weilad in der ersten Zeile erschien

Die Literatur zu "vermeidbaren Teilwörtern", die ich gefunden habe, war alle unendlich - schließlich ist ein Wortmuster unvermeidlich, wenn die Wortgröße groß genug ist. Ich würde gerne Endversionen solcher Theoreme finden. Also, Frage:

Wie viele Wörter der Länge k vermeiden ein Teilwort der Form in einem Alphabet aus l Buchstaben und können explizit in Polynomzeit erzeugt werden?ajblk

Ich erwarte nicht, dass die obige Frage schwierig sein wird, und wenn es keine Subtilität gibt, die mir fehlt, könnte ich sie selbst berechnen. Der wahre Grund, warum ich auf dieser Website poste, ist, dass ich viel mehr über die Eigenschaften solcher Wortlisten für meine Anwendung wissen muss. Ich hoffe, dass jemand die folgende Frage beantworten kann:

Wurde dies allgemein untersucht? Was sind einige Artikel, die berücksichtigen, nicht nur, ob ein Teilwort letztendlich unvermeidbar ist, sondern "wie lange es dauert", bis es unvermeidlich wird?

Vielen Dank.


(1) Ich kann die Entsprechung zwischen Ihrer ersten Frage und dem zuvor angegebenen Beispiel nicht verstehen. Was ist die Eingabe in Ihrem Beispiel? (2) Verwenden Sie in Ihrer ersten Frage k für zwei verschiedene Zwecke?
Tsuyoshi Ito

In Bezug auf (2) habe ich einen Fehler gemacht, der jetzt bearbeitet wurde. Danke.
Aaron Sterling

In Bezug auf (1) möchte ich wissen, "wie viel Platz ich noch habe", sobald ein Teilwort erscheint. Aber ja, die eigentliche Frage ist, wie Listen wie die im Beispiel gezeigte erstellt werden können (ohne die verbotenen Teilwörter). Die Eingabe wären also die Werte von und l und eine gewünschte Anzahl von Wörtern, die in einer Liste erzeugt werden sollen, die alle die "Vermeidung von zuvor auftretenden Teilworteigenschaften" hatten. kl
Aaron Sterling

2
@ Aaron, ich weiß nicht, was Ihre ultimative Anwendung ist, aber Davenport-Schinzel-Sequenzen (und Verallgemeinerungen) fragen nach der maximalen Länge eines Strings, der kein bestimmtes sich wiederholendes Muster enthält. Es ist eine verwandte Vorstellung.
Suresh Venkat

1
Seth Pettie hat auch einige sehr raffinierte Verallgemeinerungen für verbotene Submatrizen untersucht.
Suresh Venkat

Antworten:


4

Hier ist ein Sonderfall: Die Anzahl der binären Wörter der Länge so dass keine zwei nacheinander erscheinen, ist F ( k + 3 ) , wobei F ( n ) die n t h Fibonacci-Zahl ist (beginnend mit F ( 1 ) = 1 , F ( 2 ) = 1 ). Der Nachweis erfolgt über die Zeckendorfer Darstellung .kF(k+3)F(n)nthF(1)=1,F(2)=1

EDIT: Wir können diesen anfänglichen Sonderfall auf den etwas größeren Sonderfall von . Betrachten Sie Zeichenfolgen der Länge k über einem Alphabet der Größe l + 1 , sodass der Buchstabe a nicht zweimal hintereinander erscheint. Sei f ( k ) die Anzahl solcher Strings (die wir "gültig" nennen werden). Wir behaupten, dass: f ( k ) = l f ( k - 1 ) + l f ( k - 2 )a0akl+1af(k)

f(k)=lf(k1)+lf(k2)
Die Intuition ist, dass wir eine gültige Zeichenfolge der Länge k konstruieren können, indem wirentweder: a) einen der l Buchstaben, die nicht a sind, an eine gültige Zeichenfolge der Länge k anschließen - 1 oder b) neben dem Buchstaben a und dann jedem anderen Buchstaben außer a an eine gültige Zeichenfolge der Länge k - 2 .
f(0)=1,f(1)=l+1
klak1aak2

Sie können überprüfen, ob das Folgende eine geschlossene Form für die obige Wiederholung ist: wo wir verstehen wenn .(n

f(k)=i=0k(k+1ii)lki
i>n(ni)=0i>n

EDIT # 2: Lassen Sie uns einen weiteren Fall - a . Wir werden Strings über ein Element-Alphabet aufrufen , das nicht die Teilzeichenfolge , "valid", und die Menge der gültigen Strings der Länge . Weiter definieren wir als die Teilmenge von die aus Zeichenfolgen besteht, die mit und als Zeichenfolgen , die nicht mit . Schließlich sei,,.l a b S k k T k S k b U k b f ( k ) = | S k | g ( k ) = | T k | h ( k ) = | U k |0b,ablabSkkTkSkbUkbf(k)=|Sk|g(k)=|Tk|h(k)=|Uk|

Wir beobachten, dass und . Als nächstes schließen wir die folgenden Wiederholungen: Das erste ergibt sich aus der Tatsache, dass das Hinzufügen eines zum Anfang eines Elements von ein Element von . Die zweite ergibt sich aus der Beobachtung, dass wir ein Element von konstruieren können, indem wir ein beliebiges Zeichen außer an die Vorderseite eines Elements von hinzufügen oder indem wir ein beliebiges Zeichen außer oder an die Vorderseite eines Elements hinzufügen in .g ( 1 ) = 1 , h ( 1 ) = l - 1 , f ( 1 ) = l g ( k + 1 )g(0)=0,h(0)=1,f(0)=1g(1)=1,h(1)=l1,f(1)=l bSkTk+1Uk+1bUkabTk

g(k+1)=f(k)h(k+1)=(l1)h(k)+(l2)g(k)
bSkTk+1Uk+1bUkabTk

Als nächstes ordnen wir die Wiederholungsgleichungen neu an, um zu erhalten:

f(k+1)=g(k+1)+h(k+1)=f(k)+(l1)h(k)+(l2)g(k)=f(k)+(l1)f(k)g(k)=lf(k)f(k1)

Wir können eine ziemlich undurchsichtige Lösung in geschlossener Form für diese Wiederholung erhalten, indem wir ein bisschen mit dem Generieren von Funktionsmaterial herumspielen oder, wenn wir faul sind, direkt zu Wolfram Alpha gehen . Mit ein wenig googeln und herumstöbern in OEIS stellen wir jedoch fest, dass wir tatsächlich haben: wobei das Chebyshev-Polynom der zweiten Art (!) .U k k t h

f(k)=Uk(l/2)
Ukkth

Das ist sehr interessant, danke.
Aaron Sterling

2

Ein völlig anderer Ansatz für die erste Frage verwendet die Antworten auf die jüngste Frage zur Erzeugung von Wörtern in einer regulären Sprache erneut : Es reicht aus, diese Algorithmen für die Länge auf die reguläre Sprache anzuwenden wo das Alphabet ist.Σ * a Σ j b Σ * ΣkΣaΣjbΣΣ


Vielen Dank. Ich habe mich gefragt, ob es einen Zusammenhang geben könnte, und Ihre Antwort hier gab mir den nötigen Schub, um mir die dort genannten Papiere anzusehen, und einer von ihnen löst definitiv einen Teil eines der Probleme, die ich in Betracht ziehe.
Aaron Sterling

0

Aktualisiert: Diese Antwort ist falsch :

unter der Annahme festgelegt ist, können wir die Anzahl der Zählung Wege ein Muster angepaßt werden kann: der erste Symbol kann an einer bestimmten Position angepasst werden , und wir haben Möglichkeiten vor diesem Punkt, zwischen und und für den Rest der Zeichenkette, also insgesamt Fälle. Wie von Tsuyoshi Ito in den Kommentaren bemerkt, ist diese Anzahl nicht die Anzahl der verschiedenen Wörter, die mit übereinstimmena j b a 1 i k - j - 1 l i - 1 l j a b l k - j - i - 1 k - j - 1 i = 1 l i - 1l jl k - j - i - 1 = ( k - jjajba1ikj1li1ljablkji1

i=1kj1li1ljlkji1=(kj1)lk2
ajbda ein einzelnes Wort auf unterschiedliche Weise mit demselben Muster übereinstimmen könnte. Zum Beispiel wird dreimal in , zweimal in und zweimal in . Wir können versuchen, die Anzahl der Arten des Abgleichs von Mustern mehrmals zu zählen und einen "Einschluss-Ausschluss" -Ausdruck anzuzeigen, aber die Art und Weise, wie sich Muster überlappen, macht dies zu lang.aaaaaaababababaabb

Für die erste Frage, unter der Voraussetzung, dass nicht festgelegt ist, dh dass wir vermeiden möchten, das Wort :jab

  • entweder das erste Symbol erscheint nie, was mögliche Wörter erklärt,a(l1)k
  • oder erscheint zuerst an einer Position , dann können wir im Rest des Wortes nicht verwenden: Es gibt Auswahlmöglichkeiten für den Faktor bis zu und Auswahlmöglichkeiten für den Rest, wobei insgesamt mögliche Wörter. Ob ist irrelevant.1 i k b ( l - 1 ) i - 1 a ( l -a1ikb(l1)i1a(l1)kii=1k(l1)i1(l1)ki=k(l1)k1a=b

Für die zweite Frage habe ich nicht viel vorzuschlagen; Es gibt eine Beziehung zu Worteinbettungen, aber die Ergebnisse, die ich über schlechte Sequenzen für Higmans Lemma kenne, gelten nicht sofort.


Vielen Dank, Sylvain, obwohl ich das nicht ganz richtig finde. Wir können später im Wort verwenden, wenn erscheint. Wir können einfach nicht verwenden, wenn genau Buchstaben zwischen und , wenn früher aufgetaucht ist. Vielleicht verstehe ich Ihre Argumentation jedoch falsch. a b j a b a j bbabjabajb
Aaron Sterling

Entschuldigung, ich war mir nicht sicher, ob behoben wurde oder nicht. Ich habe die Antwort auch mit festem bearbeitet . jjj
Sylvain

1
Ich denke nicht, dass der Fall mit festem j richtig ist. Wenn beispielsweise k = 4 und j = 1 ist, wird das Wort aabb zweimal subtrahiert. Ich habe den nicht festen Fall nicht gelesen.
Tsuyoshi Ito

@ Tsuyoshi Ito: Sie haben Recht, in diesem Fall gibt es keine eindeutige Übereinstimmung.
Sylvain

Bitte markieren Sie eine falsche Antwort als solche.
Tsuyoshi Ito
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.