Algorytmy minimalizacji automatów Moore'a


11

Algorytm Brzozowskiego można rozszerzyć na automaty Moore'a, ale jego złożoność czasowa jest generalnie wykładnicza. Czy istnieje jakiś inny algorytm minimalizacji automatów Moore? Jakie są czasy działania tych algorytmów, jeśli takie istnieją?


Do jakiego algorytmu Brzozowskiego się odwołujesz? Ten, który używa pochodnych wyrażeń regularnych?
J.-E.

2
Witamy w SE Computer Science. Ponieważ najwyraźniej jeszcze nie przeczytałeś prezentacji witryny, powinieneś wiedzieć, że jest to praca oparta na współpracy, oparta na technicznej wymianie między użytkownikami zadającymi pytania a użytkownikami, którzy udzielają odpowiedzi lub komentarzy. Dlatego należy udzielić odpowiedzi użytkownikom proszącym o więcej szczegółów w komentarzach, głosować za dobrymi odpowiedziami lub dobrymi komentarzami (lub innymi interesującymi pytaniami lub odpowiedziami, które czytasz), a ostatecznie zaakceptować odpowiedź, którą uważasz za najlepszą w swoich pytaniach, klikając przycisk „ zaznacz znak „(jak V) po lewej stronie wybranej odpowiedzi.
babou

Czy odpowiedź była dla ciebie przydatna?
babou

Odpowiedzi:


6

Oryginalny algorytm minimalizacji DFA został faktycznie zaprojektowany dla Moore Machines , kierując się ich pozornie bardziej obserwowalnym zachowaniem. Ale przedstawiony tutaj algorytm jest rekonstrukcją z minimalizacji DFA, ponieważ odkryłem dowody historyczne po fakcie.

Po Wikipedii (z pewnymi zmianami notacyjnymi):

Urządzenie Moore można zdefiniować jako 6-krotnego (Q,q0,Σ,Π,δ,γ) składający się z następujących elementów:

  • skończony zbiór stanów Q
  • stan początkowy (zwany również stanem początkowym) który jest elementem Qq0Q
  • skończony zbiór zwany alfabetem wejściowym Σ
  • skończony zbiór zwany wyjściowym alfabetem Λ
  • funkcja przejścia odwzorowuje stan i alfabet wejściowy na następny stan δ:Q×ΣQ
  • funkcja wyjściowa mapuje każdy stan na wyjściowy alfabet γ:QΠ

Zgodnie z tą definicją maszyna Moore'a jest deterministycznym przetwornikiem stanu skończonego.

Nie mam odniesienia do minimalizacji automatów Moore'a. Nie wydaje się jednak zbyt trudne wyobrażenie sobie algorytmu pochodzącego z algorytmu stosowanego do deterministycznych automatów skończonych.

Idea minimalizacji DFA oparta jest na charakterystyce Myhill-Nerode dla zwykłych języków .

Biorąc pod uwagę język , oraz parę ciągów x i y , zdefiniować wyróżniający rozszerzenie być ciągiem oo tak, że dokładnie jeden z dwóch ciągów x Z i Y Z należy do L . Zdefiniować relację R, L na łańcuchach przez zasadę, że x R L R IFF nie wyróżniający rozszerzenie dla x i y . Łatwo jest pokazać, że R L jest relacją równoważności na sznurkach, a więc dzieli zbiór wszystkich ciągów na klasy równoważności.LxyzxzyzLRLxRLyxyRL.

Twierdzenie Myhill-Nerode stwierdza, że jest regularne wtedy i tylko wtedy, gdy R L ma skończoną liczbę klas równoważności, a ponadto, że liczba stanów w najmniejszym deterministycznym automacie skończonym (DFA) rozpoznającym L jest równa liczbie klas równoważności w R l .L.RL.L.RL.

Rzeczywiście każdy stan najmniejszej DFA jest takie, że W Q jak zdefiniowano powyżej, jedną z klas równoważności na stosunek R L .qW.qRL.

W przypadku nie-minimalnego DFA dla języka regularnego łatwo jest wykazać, że każdy zestaw W q zawiera łańcuchy, które wszystkie należą do tej samej równoważnej klasy w odniesieniu do R LL.W.qRL. .

Zatem minimalizacja DFA faktycznie polega na łączeniu stanów (traktowanych jako zestawy równoważnych ciągów), ilekroć zostanie wykazane, że dwa różne stany zawierają równoważne ciągi.

W tym celu istnieją dwa dość szybkie algorytmy: algorytm Moore'a (1956), który jest w czasie i algorytm Hopcrofta (1971) w czasie O ( n log n )O(n2))O(nlogn) .

Przedłużenie Moore automatów jest najlepiej rozumiany w redefining stosunek równoważności, dla przetwornika T . Relacja R L dotyczyła tego, czy przyszłe dane wejściowe doprowadzą w sposób równoważny do stanu akceptującego. R TRT.TRLRT relacja równoważności z automatów Moore'a dotyczy tego, czy wejście przyszłość przyniesie taki sam efekt.

Stąd, biorąc pod uwagę przetwornik i dwa ciągi x i y , definiujemy rozszerzenie wyróżniające jako ciąg z taki, że T ( x z ) = T ( x ) u i T ( y z ) = T ( y ) v z u v , tj. takie, że zachowanie wyjściowe przetwornika różni się dla z zależnie od tego, czy następuje po x lub yTxyzT(xz)=T(x)uT(yz)=T(y)vuvzxy .

Ponownie, jest relacją równoważności, dzielącą wszystkie łańcuchy na Σ RTΣ na klasy równoważności. W przypadku maszyny Moore klasy te ponownie będą odpowiadały stanowi minimalnego przetwornika.

Poniższy algorytm naśladuje algorytm Moore'a w celu minimalizacji DFA.

Zdefiniować początkową partycji z Q na klasy stanowi, S e , jak następuje:PQSe

eΠ:Se={qQγ(q)=e}

Następnie podzieliliśmy klasy na P w następujący sposób:

powtarzaj kolejno dla każdej klasy stanów , aż żadna zmiana nie powtórzy a Σ ,S
   aΣ,
     Jeżeli następnienie rób nicwięcej,dzieląc S na podzbiory S i tak, żedla każdego podzbioru S i istnieje inna klasa S P taka, żeq S i ,SP,qS,δ(q,a)S
     SSi
      SiSP (podzbiory S i zastępują S w PqSi,δ(q,a)S
      SiSP )

Gdy nie ma już żadnej klasy, którą należałoby podzielić, pozostałe klasy stanów utworzą stany minimalnej maszyny Moore'a.

Z założenia wszystkie stany w klasie mają takie same dane wyjściowe, co dane wyjściowe dla klasy.

Podobnie dla każdego wejścia aΣ wszystkie stany w klasie przechodzą do pewnego stanu w tej samej innej klasie, która definiuje funkcję przejścia dla minimalnej maszyny Moore'a.

Analiza złożoności: Niech być liczbą stanów, a s = | Σ | wielkość wprowadzanego alfabetu. Główna pętla jest wykonywana co najwyżej n razy, ponieważ każda iteracja musi podzielić co najmniej jedną klasę stanów, a każda klasa zawiera co najmniej jeden stan. Każda iteracja pętli sprawdza każdy stan skończoną liczbę razy i proporcjonalnie do liczby symboli wejściowych. Dlatego złożoność algorytmu wynosi O ( s n 2 )n=|Q|s=|Σ|
nO(sn2) , tak samo jak algorytm minimalizacji DFA, który posłużył za wskazówkę dla tego algorytmu.

Nie mam odniesienia do tej minimalizacji maszyn Moore. Być może jest to zawarte w jego pracy:

Moore, Edward F. (1956). „Eksperymenty Gedankena na maszynach sekwencyjnych”. Automata Studies , Annals of Mathematical Studies (Princeton, NJ: Princeton University Press) (34): 129-153.

Ten artykuł jest głównym dokumentem wprowadzającym Moore Machines . Jest to również odniesienie do algorytmu minimalizacji DFA Moore'a . Zaskakujące powinno być zatem to, że dostosowanie algorytmu do minimalizacji maszyn Moore'a nie było przynajmniej sugerowane w tym dokumencie. Sprawdziłem gazetę, a przedstawiona wersja algorytmu minimalizacji jest w rzeczywistości dla maszyn Moore, a nie dla DFA. Artykuł jest dobrze napisany, ale styl czasu utrudnia jego czytanie. Interesujące jest to, że wiele pomysłów teorii Myhill-Nerode maszyn skończonych stanów zostało już naszkicowanych w tym artykule.

Nowsza algorytm powodu John Hopcroft (1971) W podobny sposób należy dostosować do urządzeń Moore. Nie jest jasne, że istniał jakikolwiek powód, aby opublikować tę adaptację w dowolnym miejscu, a artykuł Hopcroft wydaje się nie mieć odniesienia do maszyn Moore.O(snlogn)


@Raphael Referencje ... Cóż, masz szczęście, przeprojektowałem algorytm, ponieważ nie mam dostępu do biblioteki. Ale skoro poprosiłeś o referencję, mam ją. Powinieneś to polubić. Ale nie jestem pewien, czy użyłbym tego do nauczania.
babou

@Raphael Artykuł jest interesujący w swojej prezentacji, która stara się być bardzo intuicyjna, bardziej operacyjna niż algebraiczna. Nie pamiętam wszystkich szczegółów wkładu Myhill i Nerode (dwa lata później w 1958 r.) I nie przeczytałem wystarczająco uważnie artykułu (raczej go przejrzałem), ale zastanawiam się, czy teorii nie należy przypisywać Moore'owi jako dobrze.
babou

2

Wersja algorytmu Brzozowskiego wykorzystująca pochodne wyrażeń regularnych podana jest w [2], rozdziale 12, sekcji 4, gdzie zapisano ją w [4]. Patrz [1] i [3], aby zapoznać się z bardziej ogólnym przypadkiem przetworników podsekwencyjnych (terminologia jest nieco przestarzała, a termin przetwornik sekwencyjny jest obecnie prawdopodobnie bardziej odpowiedni).

[1] C. Choffrut, Minimalizacja podrzędnych przetworników: ankieta, Theoret. Komp. Sci. 292 (2003), 131–143.

[2] S. Eilenberg, Automata, Languages ​​and Machines, vol. A, Academic Press, 1974.

[3] J.-E. Pin, samouczek na temat funkcji sekwencyjnych . (Slajdy)

[4] GN Raney, Funkcje sekwencyjne, JACM 5 (1958), 177–180.


@DW Dzięki za edycję. Po prostu perfekcyjnie.
J.-E.

1

Algorytm Brzozowskiego jest złym punktem wyjścia (jeśli chodzi o asymptotyczne środowisko uruchomieniowe najgorszego przypadku). Nawet Wikipedia mówi ci tyle:

Jak zauważył Brzozowski (1963), odwrócenie krawędzi DFA powoduje niedeterministyczny automat skończony (NFA) do odwrócenia oryginalnego języka i przekształcenie tego NFA w DFA przy użyciu standardowej konstrukcji zestawu mocy (konstruując tylko możliwe do osiągnięcia stany skonwertowany DFA) prowadzi do minimalnego DFA dla tego samego odwróconego języka. Powtórzenie tej operacji odwracania po raz drugi daje minimalny DFA dla oryginalnego języka. Złożoność algorytmu Brzozowskiego w najgorszym przypadku jest wykładnicza, ponieważ istnieją regularne języki, dla których minimalny DFA odwrócenia jest wykładniczo większy niż minimalny DFA języka [6], ale często działa lepiej niż sugerowałby ten najgorszy przypadek.

Algorytm ma wykładniczy czas działania w najgorszym przypadku, nawet w DFA, ponieważ oblicza automat dla odwrotności, który może być wykładniczo duży. Więc twój problem nie pochodzi z rozszerzenia na przetworniki.

Spróbuj dostosować inny algorytm minimalizacji DFA.

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.