Język formalny nad alfabetem jest podzbiorem , czyli zbiór słów nad tym alfabecie. Dwa formalne języki i są sobie równe, jeśli odpowiadające im zbiory są ponadto równe jako podzbiory . W teorii złożoności można używać języków, aby sformalizować pojęcie „problemu”. Można narzekać, że „ogólnie” ekstensywna równość jest nierozstrzygalna, ale wierzę, że byłoby to mylne.
Ja rozważając poniższy problem, ponieważ od pewnego czasu: dwa języki i przez alfabetów i (gdzie , , ito odrębne 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”. Chciałbym wiedzieć, jakie są możliwe pojęcia izomorfizmu odpowiednie dla teorii złożoności. Początkowo myślałem, że słaby obliczeniowo „tłumacz”, taki jak maszyna o stanie skończonym, może być użyty do zdefiniowania dozwolonych izomorfizmów, ale wydaje się, że już to się psuje w przypadku trywialnych tłumaczeń składniowych między równoważnymi formułami logicznymi. (Zobacz na przykład tę tabelę z definicją składniową podwójnego w logice liniowej ).
Dzisiaj wpadłem na następujący pomysł: definicja języka odpowiadająca określonemu „problemowi decyzyjnemu” często składa się z dwóch części: (1) kodowania dozwolonych wystąpień problemu jako skończonych ciągów symboli oraz (2) definicji „ zaakceptowane ”przypadki problemów, które należą do języka. Jeśli sprawdzenie, czy dany ciąg znaków jest kodowaniem dozwolonej instancji problemu, wymaga już maszyny obliczeniowej silniejszej niż maszyna stanu skończonego, to ta silniejsza maszyna powinna również zostać użyta do definicji dozwolonych izomorfizmów.
Pytania: Czy ta linia rozumowania ma szansę „rozwiązać” mój problem? Czy mój problem został już rozwiązany, więc muszę tylko przeczytać odpowiednie referencje? Czy sam mój problem ma jakiś sens, czy jest to tak samo mylne, jak narzekanie na nierozstrzygalność ekstensywnej równości?
Edytuj (jeszcze nie odpowiedź) Zauważyłem, że „(1) Kodowanie dozwolonych wystąpień problemów jako skończonych ciągów symboli” zawiera już (ukryte) założenie znormalizowanego wejścia. Bez tego założenia dwa różne ciągi skończone mogą odpowiadać tej samej instancji problemu. Zamiast sprawdzania, czy dany ciąg skończony jest prawidłowy, sprawdzanie może wygenerować znormalizowany sygnał wejściowy (i odwzorować niepoprawne ciągi na ciąg specjalny).
To ustawienie ma tę zaletę, że maszyna wykonująca sprawdzanie / normalizację jest już wyposażona w środki do przekształcania łańcuchów skończonych na inne łańcuchy skończone. Dozwolona maszyna (klasa złożoności) dla tego zadania może być częścią definicji problemu, a (izo) morfizmy wykorzystywałyby tę samą maszynę (klasa złożoności). (Sugestia „wielokrotnych redukcji wielokrotnych” z komentarza Raphaela byłaby rzeczywiście jedną z możliwości wystąpienia problemów w .)
Wadą jest to, że ten sposób specyfikacji może być odpowiedni tylko dla maszyn deterministycznych. Maszyny niedeterministyczne mogą wymagać bardziej elastycznych sposobów określania / decydowania, czy dwa ciągi wejściowe odpowiadają tej samej instancji problemu.
źródło
Odpowiedzi:
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.
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′) f g f(x)=g(x) x∈L R⊂Σ∗×Σ′∗ L=R−1(L′)
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} L U→00 C→01 A→10 G→11 L L′ L=Σ∗ f , uważa się za równe (jako morfizmy), jeśli dla wszystkich "pominięto w definicji.g f(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:L L′
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′)
źródło