Minimalne DFA spełniające skończony obraz języka


12

Powiedzmy, że mamy język , ale nie wiemy, jakie ciągi znaków są w rzeczywistości częścią tego języka. Wszystko, co ma, to skończony widok języka: skończony zestaw ciągów A \ subseteq L , o których wiadomo, że są w języku, oraz skończony zestaw ciągów B \ subseteq (\ Sigma ^ * \ setminus L), które są znane nie być w języku.LΣALB(ΣL)

Na przykład, powiedzmy, że mam i . Mogę mieć język , ponieważ i są zgodne z , lub mogę mieć całkowicie inny język.B = { b , b , b } L = { 2 i + 1 b j | i , j N } A B LA={ab,aaab,aaaaabb}B={b,aab,aaaba}L={a2i+1bj | i,jN}ABL

Moje pytanie brzmi: czy istnieje znany sposób na utworzenie DFA (deterministycznych automatów skończonych), które akceptują łańcuchy w i odrzucają łańcuchy w , z minimalną lub prawie minimalną liczbą stanów? Jaka jest złożoność tego problemu? Jak dobrze jest w przybliżeniu (zakładając, że ma dość niską złożoność opisową, a i są duże)?B L L A BABLLAB

Oryginalne pytanie na math.stackexchange.com. Postanowiłem ponownie opublikować tutaj po tym, jak nie otrzymałem odpowiedzi na pierwotne pytanie i nie mając pojęcia, gdzie ich szukać. Byłbym bardzo wdzięczny, gdyby ktoś skierował mnie w stronę badań w tej dziedzinie.



2
Dobrze napisana odpowiedź Lwa na pytanie, które połączyłem, obejmuje niedopuszczalność.
Tsuyoshi Ito,

6
Napisałem również post na blogu, który jest bardziej szczegółowy niż moja pierwotna odpowiedź cstheory.blogoverflow.com/2011/08/on-learning-regular-languages
Lev Reyzin

1
Nie widzę różnicy między „twoją wersją” a wynikiem niedoceniania, który Lev cytował w odpowiedzi. Ponadto nie widzę związku między „twoją wersją” a „pójściem w drugą stronę”.
Tsuyoshi Ito

1
@TsuyoshiIto Właściwie wydaje się, że odpowiedź Lwa odpowiada „mojej wersji”! Czytałem powyższy post na blogu i nie znalazł (a przynajmniej go nie znalazłem). Ale pierwotna odpowiedź Lwa tak. Jeśli chodzi o związek między „moją wersją” a „pójściem w drugą stronę” ... Jeśli możemy wygenerować takie i , oznacza to, że odpowiedź na „moją wersję” nie zawsze jest negatywna. W pracy Parekha i Honavara wykorzystano ten pomysł, aby udowodnić, że proste DFA można się nauczyć z arbitralnie wysokim prawdopodobieństwem. W każdym razie, jak to zrobić lub jak zamknąć to pytanie? B.AB
Francisco Mota,

Odpowiedzi:


5

Jak już wiesz z komentarzy, znalezienie minimalnego DFA spełniającego skończony zestaw pozytywnych i negatywnych przykładów to -hard. Jednak nie wszystko stracone, jeśli zechcesz nieco zmodyfikować swój paradygmat uczenia się, możemy wrócić do .PNPP

Załóżmy, że próbujesz nauczyć się nieznanego DFA który jest minimalny dla niektórych języków . Jeśli zezwolisz na pytania dotyczące członkostwa w wyroczni i będziesz działać jako nauczyciel, odpowiadając na następujące pytanie: Czy w związku z proponowanym DFA rozpozna ? Jeśli nie, czy możesz podać kontrprzykład?L W G L WWLWGLW

Zauważ, że jeśli wyrocznia ma dostęp do , może porównywać do w czasie wielu, ponieważ testowanie równości między zwykłymi językami jest łatwe. Generowanie przeciw-przykładu można również wykonać w czasie wielomianowym.G WWGW

W tych ramach możesz nauczyć się w czasie wielomianowym za pomocą algorytmu Angluina ( 1987 ; pdf ) (lub udoskonalenia go przez Schapire'a ; patrz rozdział 5.4.5). Aby uzyskać więcej informacji o tym modelu, oto dwa pytania na temat cstheory i CS.SE na ten temat:W


0

Wydaje mi się, że można zastosować udoskonalenie równoważności Myhill-Nerode dla tego problemu.

Można określić jeśli istnieje , tak że a . Oznacza to, że każdy automat oddzielający od musi znajdować się w różnych stanach po odczytaniu i .uvxΣuxAvxBABuv

Wystarczy zbadać tę relację nad prefiksów elementów i . To da ci dolną granicę liczby potrzebnych stanów. Nie jestem pewien, czy bezpośrednio daje to sposób na zbudowanie minimalnego automatu, ale jest to przynajmniej ścieżka do eksploracji.AB


-1

Myślę, że ten problem mógł zostać niedokładnie sformułowany przez pytającego. Pytający najwyraźniej chce algorytmu, który uogólnia nieskończone słowa na podstawie konkretnych przykładów słów skończonych, wykorzystując pewien rodzaj mechanizacji indukcji, tj. Rozpoznając pozorne wzorce w przykładach.

Oprócz niektórych badań teorii CS cytowanych w komentarzach, istnieje również więcej badań empirycznych w tej dziedzinie, np. Poniżej, z wykorzystaniem ANN do tworzenia FSM na podstawie przykładów. Uwaga: zawsze można uruchomić standardowy algorytm minimalizacji DFA na wyniku. Biblioteka AT&T FSM jest dobra do pracy w tym obszarze.

Pytający nie określa konkretnie swojej dziedziny problemów, co może pomóc w zrozumieniu struktury przykładów i uzyskać bardziej szczegółowe odniesienia. Jednak jednym z przykładów, które można zobaczyć, są algorytmy AI w grach wykorzystujących algorytmy FSM. Podejrzewam, że istnieją przypadki, w których FSM uczy się na podstawie przykładów z wykorzystaniem algorytmów uczenia się.

[1] Nauka klasy dużych skończonych maszyn stanów z nawracającą siecią neuronową C. Lee Giles, 1, BG Horne, T. Lin 1995

[2] Uczenie się FSM z samoklastrującymi sieciami cyklicznymi przez Zeng & Smyth 1993

[3] Biblioteka AT&T FSM


1
twój drugi link po prostu prowadzi do tego pytania. Gdzie powinien być link?
Artem Kaznatcheev

oops, thx, fixed
vzn
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.