Im ersten Teil zeigen wir einen exponentiellen Algorithmus zur Bestimmung der Zirkularität. Im zweiten Teil zeigen wir, dass das Problem coNP-schwer ist. Im dritten Teil zeigen wir, dass jede Kreissprache eine Vereinigung von Sprachen der Form r + ist (hier könnte r der leere reguläre Ausdruck sein); Die Gewerkschaft ist nicht unbedingt unzusammenhängend. Im vierten Teil zeigen wir eine Kreissprache, die nicht als disjunkte Summe ∑ r + i geschrieben werden kann .r+r∑r+i
Bearbeiten: Einige Korrekturen wurden nach Marks Kommentaren eingefügt. Insbesondere meine früheren Behauptungen, dass die Zirkularität coNP-vollständig oder NP-hart ist, werden korrigiert.
Edit: Normalform von ∑ r ∗ i nach ∑ r + i korrigiert∑r∗i∑r+i . Stellte eine "inhärent mehrdeutige" Sprache aus.
In Fortsetzung von Peter Taylors Kommentar erfahren Sie hier, wie Sie (äußerst ineffizient) entscheiden können, ob eine Sprache aufgrund ihres DFA zirkulär ist. Konstruieren Sie einen neuen DFA, dessen Zustände n- Tupel der alten Zustände sind. Dieser neue DFA führt n Kopien des alten DFA parallel aus.nn
Wenn die Sprache nicht zirkulär ist, gibt es ein Wort w, so dass wir, wenn wir es wiederholt durch den DFA laufen lassen, beginnend mit dem Anfangszustand s 0 , die Zustände s 1 , ... , s n erhalten, so dass s 1 nur eins akzeptiert der anderen akzeptiert nicht (wenn alle akzeptieren , muss die Sequenz s 0 , ... , s n zyklisch ablaufen, damit w ∗ immer in der Sprache ist). Mit anderen Worten, wir haben einen Pfad von s 0 , ... , s nws0s1,…,sns1s0,…,snw∗ - 1 zu ss0,…,sn−1 1 , … , s n, wobei s 1 akzeptiert, aber einer der anderen nicht akzeptiert. Umgekehrt kann dies nicht passieren, wenn die Sprache zirkulär ist.s1,…,sns1
Daher haben wir das Problem auf einen einfachen gerichteten Erreichbarkeitstest reduziert (überprüfen Sie einfach alle möglichen "schlechten" n- Tupel).n
Das Problem der Zirkularität ist coNP-schwer. Angenommen , wir haben ein 3SAT - Instanz mit gegebenen n Variablen → x und m Klauseln C 1 , ... , C m . Wir können annehmen, dass n = m (Dummy-Variablen hinzufügen) und n Primzahl ist (andernfalls finden wir eine Primzahl zwischen n und 2 n)nx⃗ mC1,…,Cmn=mnn2n mit AKS-Primalitätstests finden und Dummy-Variablen und -Klauseln hinzufügen).
Betrachten Sie die folgende Sprache: "Die Eingabe hat nicht die Form → x 1 ⋯ → x n, wobei → x i eine befriedigende Zuweisung für C i ist ". Es ist einfach, einen O ( n 2 ) -DFA für diese Sprache zu erstellen. Wenn die Sprache nicht zirkulär ist, gibt es ein Wort w in der Sprache, von dem eine Kraft nicht in der Sprache liegt. Da die einzigen Wörter, die nicht in der Sprache sind, die Länge n 2 haben , muss w die Länge 1 oder n 1 habenx⃗ 1⋯x⃗ nx⃗ iCiO(n2)wn2w1n . Wenn es lang ist1stattdessen w n (es ist immer noch in der Sprache), so dass w in der Sprache ist und w n nicht in der Sprache ist. Die Tatsache, dass w n nicht in der Sprache ist, bedeutet, dass w eine zufriedenstellende Aufgabe ist.wnwwnwnw
Umgekehrt wird jede befriedigende Zuweisung zu einem Wort übersetzt, das die Unrundheit der Sprache beweist: Die befriedigende Zuweisung w gehört zur Sprache, w n jedoch nicht. Daher ist die Sprache zirkulär, wenn die 3SAT-Instanz nicht erfüllt werden kann.wwn
In diesem Teil diskutieren wir eine normale Form für Kreissprachen. Betrachten wir einige DFA für eine Kreis Sprache L . Eine Folge C = C 0 , ... ist real, wenn C 0 = s (der Anfangszustand) ist, alle anderen Zustände akzeptieren, und C i = C j impliziert C i + 1 = C j + 1 . Somit ist jede reale Sequenz schließlich periodisch, und es gibt nur endlich viele reale Sequenzen (da der DFA endlich viele Zustände hat).LC=C0,…C0=sCi=CjCi+1=Cj+1
We say that a word behaves according to CC if the word takes the DFA from state cici to state ci+1ci+1, for all ii. The set of all such words E(C)E(C) is regular (the argument is similar to the first part of this answer). Note that E(C)E(C) is a subset of LL.
Given a real sequence CC, define CkCk to be the sequence Ck(t)=C(kt)Ck(t)=C(kt). The sequence CkCk is also real. Since there are only finitely many different sequences CkCk, the language D(C)D(C) which is the union of all E(Ck)E(Ck) is also regular.
We claim that D(C)D(C) has the property that if x,y∈D(C)x,y∈D(C) then xy∈D(C)xy∈D(C). Indeed, suppose that x∈Ckx∈Ck and y∈Cly∈Cl. Then xy∈Ck+lxy∈Ck+l. Thus D(C)=D(C)+D(C)=D(C)+ can be written in the form r+r+ for some regular expression rr.
Every word ww in the language corresponds to some real sequence CC, i.e. there exists a real sequence CC that ww behaves according to. Thus LL is the union of D(C)D(C) over all real sequence CC. Therefore every circular language has a representation of the form ∑r+i∑r+i. Conversely, every such language is circular (trivially).
Consider the circular language LL of all words over a,ba,b that contain either an even number or aa's or an even number of bb's (or both). We show that it cannot be written as a disjoint sum ∑r+i∑r+i; by "disjoint" we mean that r+i∩r+j=∅r+i∩r+j=∅.
Let NiNi be the size of the some DFA for r+ir+i, and N>maxNiN>maxNi be some odd integer. Consider x=aNbN!x=aNbN!. Since x∈Lx∈L, x∈r+ix∈r+i for some ii. By the pumping lemma, we can pump a prefix of xx of length at most NN. Thus r+ir+i generates z=aN!bN!z=aN!bN!. Similarly, y=aN!bNy=aN!bN is generated by some r+jr+j, which also generates zz. Note that i≠ji≠j since xy∉Lxy∉L. Thus the representation cannot be disjoint.