Czy mój problem został już rozwiązany, więc muszę tylko przeczytać odpowiednie referencje?
Istotna jest teoria abstrakcyjnej rodziny języków . Na przykład morfizmy zdefiniowane przez przetworniki skończonego stanu prowadzą do rodziny stożków . Krótkie przemówienie ICM Eilenberga z 1970 r. Ładnie wyjaśnia te ramy, patrz także rozdział 11 „Właściwości zamykania rodzin języków” z Wstępu do teorii automatów, języków i obliczeń (wydanie pierwsze) J. Hopcroft i J. Ullman z 1979 r. Jednak , tylko niedeterministyczne języki pasują do tej struktury 1 . Ostatecznie książka Teoria kodów J. Berstela i D. Perrina z 1985 roku pomogła mi znaleźć rozsądne rozwiązania mojego problemu. Kody i automatyJ. Berstela, D. Perrina i C. Reutenauera z 2009 roku jest znaczącą wersją tej książki o znacznie szerszym zasięgu.
Czy ten sposób rozumowania ma jakąkolwiek szansę na „rozwiązanie” mojego problemu? Czy sam mój problem ma jakiś sens, czy jest to tak samo mylne jak ...?
Założenie, że istnieje jedna poprawna kategoria do modelowania izomorfizmów między językami w celu „sformalizowania koncepcji problemu” jest błędne. Istnieje wiele różnych kategorii, które mogą być interesujące w kontekście języków formalnych.
Oto trzy interesujące kategorie związane z redukcjami wielokrotnymi, które będą określane jako całkowite , częściowe i relacyjne . Obiektami kategorii są pary skończonego alfabetu i języka słów nad . W sumie morfizmy między obiektem źródłowym a obiektem docelowym są funkcjami sumarycznymi z . Na częściowe , gdy morfizmami to funkcja częściowa(Σ,L)ΣL⊂Σ∗Σ(Σ,L)(Σ′,L′)f:Σ∗→Σ′∗L=f−1(L′)f:Σ∗→Σ′∗ z , gdzie dwie funkcje cząstkowe , są uważane za równe (jako morfizmy), jeśli dla wszystkich . W przypadku relacji morfizmy są relacjami z , a dowolne dwa morfizmy między tym samym źródłem i celem są uważane za równe . Zestaw dozwolonych funkcji lub relacji można ograniczyć do różnych prostych „tłumaczy”, aby uzyskać kategorie z interesującymi izomorfizmami.L=f−1(L′)fgf(x)=g(x)x∈LR⊂Σ∗×Σ′∗L=R−1(L′)
- Homomorfizmy monoidów od do dają bardzo podstawową kategorię całkowitą . Izomorfizmy tej kategorii to w zasadzie tylko bijections między i . Każda rozsądna rodzina języków powinna lepiej szanować te izomorfizmy, tj. Być zamknięta w odwrotnych homomorfizmach.Σ∗Σ′∗ΣΣ′
- Funkcje cząstkowe zdefiniowane przez deterministyczne translatory przestrzeni logów maszyny Turinga dają całkiem naturalną kategorię cząstkową . Jest w stanie przeprowadzić wiele trywialnych przekształceń składniowych (takich jak stosowanie praw De Morgana do przenoszenia negacji na atomy), obejmuje morfizm określony przez funkcjonalne przetworniki skończonego stanu 1 , a także potrafi sortować. Mimo to nie zidentyfikuje dwóch całkowicie niepowiązanych języków jako izomorficznych, ponieważ równość składu dwóch morfizmów z morfizmem tożsamości jest znacznie silniejszym wymogiem niż samo istnienie wielokrotnych redukcji w obu kierunkach.
- Relacje zdefiniowane przez niedeterministycznych tłumaczy logów maszyny Turinga dają interesującą kategorię relacyjną . W tej kategorii SAT jest izomorficzny w stosunku do HORNSAT, ale pozostaje otwarte pytanie, czy TAUTOLOGIA, czy jakikolwiek inny wspólny NP-problem jest izomorficzny w stosunku do HORNSAT.
Dwa języki i nad alfabetami i (gdzie , , i to różne litery) nigdy nie mogą być równe, nawet jeśli opisują „dokładnie” ten sam „problem”. Ale powinny być izomorficzne, jeśli naprawdę opisują „dokładnie” ten sam „problem”.LL′Σ={a,b}Σ′={c,d}abcd
Opisana powyżej bardzo podstawowa kategoria całkowita rozwiązuje ten problem.
Problem staje się bardziej interesujący, jeśli „dokładnie to samo” zostanie zastąpione przez „prawie takie samo dla najbardziej praktycznych celów”: Niech będzie językiem nad i niech będzie język ponad uzyskany z przez podstawienie , , i . Zauważ, że we wszystkich kategoriach całkowitych i nie są izomorficzne dla . To samo dotyczy kategorii częściowych , jeśli część „gdzie dwie funkcje częścioweLΣ={U,C,A,G}L′Σ′={0,1}LU→00C→01A→10G→11LL′L=Σ∗f, uważa się za równe (jako morfizmy), jeśli dla wszystkich "pominięto w definicji.gf(x)=g(x)x∈L
Zupełnie naturalna kategoria częściowa opisana powyżej jest wystarczająca do uczynienia i izomorficznymi. Byłoby miło mieć bardziej podstawową (tj. Bardziej restrykcyjną) kategorię, która czyni je izomorficznymi. Następujące (kolejno bardziej restrykcyjne) kategorie wydają mi się rozsądne:LL′
- Funkcje cząstkowe realizowane przez jednoznaczne przetworniki stanu skończonego 2, w których jedynym stanem akceptującym jest stan początkowy. Izomorfizmy tej częściowej kategorii są (podzbiorem) bijections między rozpoznawalnymi kodami o zmiennej długości .
- Funkcje cząstkowe realizowane przez deterministyczne przetworniki stanu skończonego, w których jedynym stanem akceptującym jest stan początkowy. Izomorfizmy tej częściowej kategorii są (podzbiorem) bijections między kodami prefiksów .
- Funkcje cząstkowe realizowane jednocześnie przez deterministyczny przetwornik do przodu i do tyłu, w których jedynym stanem akceptującym jest stan początkowy. Izomorfizmy tej częściowej kategorii są (podzbiorem) bijections między kodami bifix .
- Sensowne może być również dalsze ograniczenie funkcji częściowych, tak że izomorfizmy są (podzbiorem) bijectmów między kodami blokowymi .
W teorii złożoności można używać języków, aby sformalizować pojęcie „problemu”.
Jeszcze zanim poznałem teorię kategorii, zastanawiałem się, czy istnieją „bardziej wierne” sposoby sformalizowania pojęcia „problemu”. Po zapoznaniu się z teorią kategorii czasami próbowałem wymyślić możliwe rozwiązania, ale zawsze szybko się poddawałem przy pierwszym potknięciu (bo i tak nikogo to nie obchodzi). Wiem, że Jurij Gurewicz rozwiązał kilka powiązanych pytań, ale jego rozwiązania mają praktyczne zastosowanie, podczas gdy ja szukałem czegoś ładnego i abstrakcyjnego, niezależnego od praktycznego zastosowania.
Większość mojego wolnego czasu przez ostatnie trzy tygodnie poświęciłem w końcu na pewne postępy w tym problemie. Najczęściej spędzałem czas na znajdowaniu irytujących problemów w możliwych rozwiązaniach, które miałem na myśli. Poczucie postępu wynikało z czytania (starych) książek i artykułów oraz poznawania wielu podstawowych pojęć i faktów na temat przetworników i zestawów racjonalnych. W końcu nauczyłem się pojęć kodu przedrostka i kodu bifix (wcześniej kod biprefiksu w książce Berstela), co pozwoliło mi wymyślić rozsądne 3 kategorie opisane powyżej.
Może być trudno docenić te (związane z kodem) kategorie, nie widząc problemów z bardziej oczywistymi kategoriami. Ogólnym problemem jest to, że zamknięcie w składzie może utrudnić zdefiniowanie ładnie ograniczonej klasy funkcji częściowych. Inna kwestia związana jest z faktem, że dodanie jednego (lub pomnożenie przez stałą) jest „funkcją łatwą do obliczenia”, jeśli cyfry liczby podane są w niskiej kolejności, ale nie, jeśli cyfry podano dużą Endian Order.
1
Funkcjonalny przetwornik stanu skończonego jest niedeterministycznym przetwornikiem stanu skończonego, który realizuje funkcję częściową. Te funkcje cząstkowe nie mogą być realizowane przez deterministyczne przetworniki stanu skończonego. Można je zrealizować za pomocą deterministycznych bimachin , ale mogą one wymagać skanowania do przodu i do tyłu na wejściu, jeśli chcą działać w przestrzeni .O(n)O(1)
2
Jednoznaczny przetwornik stanu skończonego jest niedeterministycznym przetwornikiem stanu skończonego z co najmniej jedną ścieżką akceptacji dla każdego wejścia. Realizuje funkcję częściową, dlatego jest również funkcjonalnym przetwornikiem stanu skończonego. Można rozstrzygnąć, czy dany przetwornik stanu skończonego jest jednoznaczny.
3
Nie jestem pewien, jak uzasadnione są przedstawione powyżej sumy i kategorie relacji . Chciałem tylko pokazać proste alternatywy dla częściowej kategorii. Łatwo jest znaleźć więcej alternatyw, na przykład ko-relacyjnych , gdzie morfizmy są relacjami z , a wszelkie dwa morfizmy między tym samym źródłem i celem są uważane za równe.
R⊂Σ∗×Σ′∗L=R−1(L′)−R−1(Σ′∗−L′)