Wielojęzyczna minimalizacja DFA


10

Jestem zainteresowany niewielkim uogólnieniem DFA. Jak zwykle mamy ustawiony stan , skończony alfabet , działanie zdefiniowane na przez i stan początkowy ; lecz w zwykłym zestawem terminali wziąć rodziny podzbiorów . Wielojęzyczny DFA jest wtedy krotkąQΣΣQδ:Q×ΣQq0(T.ja)ja1 ..nQM.

(Q,Σ,δ,q0,(T.ja))

a jest rozpoznawany przez iff dla niektórych . Zdefiniuj (L_i (M)) _ {i \ in 1..n}, aby być rodziną języków rozpoznawanych przez M, jeśli chcesz.L.ΣM.L.={sΣ|q0sT.ja}ja1 ..n(L.ja(M.))ja1 ..n

Dobra, teraz moje pytanie: biorąc pod uwagę rodzinę zwykłych języków , chcę znaleźć minimalny wielojęzyczny DFA jak opisano powyżej, tak aby dla wszystkie , to znaczy takie, żejest zminimalizowane w stosunku do wszystkich takich maszyn. Moje pytanie brzmi: czy istnieją znane skuteczne sposoby na zrobienie tego, być może analogiczne do standardowej teorii minimalizacji DFA? I odwrotnie, czy istnieją dowody na to, że ten problem może być trudny?(L.ja)ja1 ..nM.L.ja=L.ja(M.)ja1 ..n|Q|


7
Wydaje mi się, że standardowy algorytm oparty na uszczegółowieniu partycji, zmodyfikowany tylko w celu rozpoczęcia od partycjonowania początkowego zestawu stanów według tego, czy akceptują / nie akceptują dla każdego z określonych podzbiorów a nie dla pojedynczego zestawu , powinien po prostu działać natychmiast. Dlaczego by nie miał Dzieli pary stanów tylko wtedy, gdy muszą być one podzielone, więc nadal generuje najgrubsze możliwe udoskonalenie stanów. T.jaT.
David Eppstein,

1
Dowód komentarza @DavidEppstein jest łatwy, jeśli zdefiniujesz relację równoważności iff dla każdego , gdzie jest relacją równoważności Myhill-Nerode. Następnie możesz postępować zgodnie z tymi samymi liniami, co standardowy algorytm minimalizacji. xyxTiyixTiy
Shaull

nie do końca rozumiem. czy odpowiedzią na ten problem jest znalezienie minimalnego DFA unii DFA z tym samym „ustawieniem” oprócz różnych stanów końcowych, każdy DFA dla ? także defn rozpoznawania wydaje się nie mieć sensu dokładnie, wydaje się mieszać ciągi znaków i zestawy stanów. 1..nL={...}
vzn

Uwagi DavidEppsteina i Shaulla wyglądają przekonująco, znajdę trochę czasu, aby przejść przez twierdzenie Myhill-Nerode, kiedy będę miał czas przekonać się, że iloraz nadal daje minimalny automat. Z perspektywy czasu wydaje się to zbyt oczywiste.
gdmclellan

@vzn: zdecydowanie nie chcę łączyć języków oryginalnego automatu; iT.jamoże się nakładać. Wielojęzyczny DFA z językamiZA i b powinien być w stanie na przykład zgłosić to sZA, ale sb. Jeśli chodzi o notację używaną przy definiowaniu rozpoznawania języka, notacja jest definiowana przez rozszerzenieδ do Σ-akcja na Q zgodnie z następującymi zasadami dla wszystkich qQ,σΣ,sΣ: qσ=δ(q,σ),q(sσ)=(qs)σ.
gdmclellan

Odpowiedzi:


14

Krótka odpowiedź . Biorąc pod uwagę skończoną rodzinę zwykłych językówL.=(L.ja)1jan, istnieje wyjątkowa minimalna deterministyczna pełna automatyka rozpoznająca tę rodzinę.

Szczegóły . Walizkan=1odpowiada standardowej konstrukcji, a ogólny przypadek niewiele różni się duchem. Biorąc pod uwagę językL. i słowo u, pozwolić u-1L.={vZAuvL.}. Zdefiniuj relację równoważności na ZA przez ustawienie

uvdla każdego L.L., u-1L.=v-1L.
Od czasu L.jasą regularne, ta zgodność ma skończony indeks. Co więcej, łatwo to zauważyćL.ja jest nasycony i to dla każdego zaZA, uv implikuje uzavza. Oznaczmy przez1 puste słowo i przez [u] -klasa słowa u. PozwolićAL=(Q,[1],,(Fi)1in) być deterministycznym automatem zdefiniowanym w następujący sposób:
  1. Q={[u]uA},
  2. [u]a=[ua],
  3. Fi={[u]uLi}.

Z założenia [1]uFi wtedy i tylko wtedy gdy uLi i stąd AL akceptuje rodzinę L. Pozostaje to udowodnićALjest minimalny. Jest tak naprawdę minimalny w silnym sensie algebraicznym (co oznacza, że ​​ma minimalną liczbę stanów). PozwolićA=(Q,q,,(Fi)1jan) i ZA=(Q,q-,,(faja)1jan)być dwiema automatami. Morfizmfa:ZAZA jest zaskakującą mapą z Q na Q takie, że

  1. fa(q-)=q-,
  2. dla 1jan, fa-1(faja)=faja,
  3. dla wszystkich uZA i qQ, fa(qu)=fa(q)u.

Następnie dla każdego dostępnego deterministycznego automatu ZA przyjmowanie L., istnieje morfizm z ZA na ZAL.. Aby to udowodnić, najpierw sprawdza się, czyq-u1=q-u2)=q, następnie u1u2). Terazfa jest zdefiniowany przez fa(q)=[u] gdzie u to dowolne słowo, które q-u=q. Następnie można to pokazaćfa spełnia trzy wymagane właściwości.

Koniec jest nieco szkicowy, daj mi znać, jeśli potrzebujesz więcej szczegółów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.