Wiadomo, że język słów o równej liczbie 0 i 1 nie jest regularny, podczas gdy język słów o równej liczbie 001 i 100 jest regularny ( patrz tutaj ).
Biorąc pod uwagę dwa słowa , czy jest rozstrzygalne, czy język słów zawierający taką samą liczbę i jest regularny?w 1 w 2
Odpowiedzi:
Biorąc pod uwagę dwa słowa , w 2 , czy jest rozstrzygalne, czy język L słów zawierających taką samą liczbę w 1 i w 2 jest regularny?w1 w2 L w1 w2
Najpierw kilka definicji:
można je uczynić bardziej zwięzłymi, a notacje można ulepszyć, jeśli mają być użyte w dowodach. To tylko pierwszy szkic.
Biorąc pod uwagę dwa słowa i w 2 , mówimy, że:w1 w2
zawsze występujez w 2 , odnotowano w 1 ◃ w 2 , iffw1 w2 w1◃w2
zawsze cooccurssię w 2 , znany w 1 ◃ ▹w1 w2 , iff każdy zawsze występuje z drugim,w1◃▹w2
i w 2 są niezależne, znany w 1 ▹ ◃w1 w2 , jeśli żadne nie występuje zawsze z drugim,w1▹◃w2
zawsze występuje m razy lub więcejniż w 2 , odnotowano w 1 ◃ m w 2 , iff dla dowolnego ciągu s, taki że s = x w 2 y z ∣ x ∣ , ∣ y ∣ | ≥ ∣ w 1 ∣ + ∣ w 2 ∣ istnieje m innych rozkładów s = x i w 1 y iw1 m w2 w1◃mw2 s s=xw2y ∣x∣, ∣y∣| ≥∣w1∣+∣w2∣ m s=xiw1yi dla
tak, że i ≠ j oznacza x i ≠ x j .i∈[1,m] i≠j xi≠xj
Te definicje są skonstruowane, abyśmy mogli zignorować to, co dzieje się na końcach ciągu, w którym powinny wystąpić i w 2 . Efekty brzegowe na końcu łańcucha muszą być analizowane osobno, ale reprezentują one skończoną liczbę przypadków (tak naprawdę myślę, że zapomniałem jednego lub dwóch takich pod-przypadków granicznych w mojej pierwszej analizie poniżej, ale to tak naprawdę nie ma znaczenia). Definicje są zgodne z nakładaniem się wystąpień.w1 w2
Do rozważenia są 4 główne przypadki (ignorowanie symetrii między i w 2 ):w1 w2
Oba słowa łączą się koniecznie razem, chyba że na końcach łańcucha. Dotyczy to tylko par postaci 1 i 0 i 01 i lub 0 i 1 i 10 i . Można to łatwo rozpoznać poskończonym automacie,który sprawdza tylko pojedyncze zdarzenia na obu końcach łańcucha, aby je rozpoznać, aby upewnić się, że występuje pojedyncze wystąpienie na obu końcach lub na żadnym końcu. Istnieje również przypadek zdegenerowany, gdy w 1 = w 2 : wtedy język L jest oczywiście regularny.w1◃▹w2
1i0 01i 0i1 10i w1=w2
, ale nie w 2 ◃ w 1 Jedno z 2 słów nie może wystąpić bez drugiego, ale odwrotność nie jest prawdziwa (chyba że na końcu łańcucha). Dzieje się tak, gdy:w1◃w2 w2◃w1
jest podciągiem w w 2 : wtedy automat skończony może po prostu sprawdzić, czy w 1 nie występuje poza wystąpieniem w 2 .w1 w2 w1 w2
Jedno z dwóch słów występuje dwa razy w drugim. Można to rozpoznać po skończonej automatyzacji, która sprawdza, czy mniejsze słowo nigdy nie występuje w ciągu. Jest to również nieco bardziej złożony wariant, który łączy dwie odmiany przypadku 2. W tym przypadku automat sprawdza, czy mniejszy ciąg 1 i 0 nigdy nie występuje, chyba że jako część v w większym v 1 j występuje jako przyrostek ciągu (i 3 inne przypadki symetrycznie).w1◃2w2
1i0 v v1j
The 2 words can occur independently of each other. We build a generalized-sequential-machine (gsm)
Actually we have
One way to organize a formal proof could be the following. First build a PDA that recognizes the language. Actually it can be done with a 1-counter machine, but it is easier to have two stack symbols to avoid duplicating the finite control. Then, for the cases where it should be a FA, show that the counter can be bounded by a constant that depends only on the two words. For the other cases show that the counter can reach any arbitrary value. Of course, the PDA should be organized so that the proofs are easy enough to carry.
Representing the FA as a 2-stack-symbols PDA is probably the simplest representation for it. In the non-regular case, the finite control part of the PDA is the same as that of the GSM in the proof sketch above. Instead of outputtinga 's and b 's like the GSM, the PDA counts the difference in number with the stack.
źródło