Czy istnieje teoria łącząca teorię kategorii / algebrę abstrakcyjną i złożoność obliczeniową?


18

Teoria kategorii i algebra abstrakcyjna zajmują się sposobem łączenia funkcji z innymi funkcjami. Teoria złożoności dotyczy tego, jak trudna jest funkcja do obliczenia. Dziwne jest dla mnie to, że nie widziałem, aby ktoś łączył te kierunki studiów, ponieważ wydają się one takimi naturalnymi parami. Czy ktoś już to zrobił?


Jako motywujący przykład przyjrzyjmy się monoidom. Dobrze wiadomo, że jeśli operacja jest monoidem, wówczas możemy ją zrównoleglić.

Na przykład w Haskell możemy w trywialny sposób zdefiniować, że dodanie jest monoidą nad liczbami całkowitymi w następujący sposób:

instance Monoid Int where
    mempty = 0
    mappend = (+)

Teraz, jeśli chcemy obliczyć sumę od 0 do 999, moglibyśmy to zrobić sekwencyjnie:

foldl1' (+) [0..999]

lub moglibyśmy to zrobić równolegle

mconcat [0..999] -- for simplicity of the code, I'm ignoring that this doesn't *actually* run in parallel

Ale równoległość tej monoidy ma sens tylko dlatego, że mappend działa w stałym czasie. Co by było, gdyby tak nie było? Listy, na przykład, są monoidami, w których mappend nie działa przez dłuższy czas (lub spację!). Zgaduję, że właśnie dlatego w Haskell nie ma domyślnej równoległej funkcji mconcat. Najlepsza implementacja zależy od złożoności monoidu.


Wydaje się, że powinien istnieć wygodny sposób na opisanie różnic między tymi dwoma monoidami. Powinniśmy wtedy być w stanie opatrzyć adnotacje naszym kodem tymi różnicami, a programy powinny automatycznie wybierać najlepsze algorytmy do zastosowania w zależności od złożoności monoidu.


1
Typ Integer w Haskell to liczby całkowite o dużej precyzji, a złożoność czasowa dodawania na nich naturalnie zależy od długości liczb całkowitych wejściowych, więc mylące jest twierdzenie, że mappend w instancji Monoid dla liczb całkowitych działa w stałym czasie.
Tsuyoshi Ito

@TsuyoshiIto Masz rację, chciałem użyć Int. Naprawiony.
Mike Izbicki,

Widziałeś to pytanie ?
Kaveh

@Kaveh Nie, dziękuję za wskaźnik. Po szybkim przeczytaniu brzmi to tak, jakby nikt nie przeprowadził żadnej teoretycznej pracy na samych klasach złożoności (i jest debata na temat tego, co to może w ogóle oznaczać lub czy jest to wartościowy cel). Sądzę więc, że właściwie odpowiada na pierwszą część mojego pytania i pozostawia jedynie interakcje między algebrą a złożonością.
Mike Izbicki,

Istnieje wiele interakcji między algebrą a teorią złożoności. Istnieją nawet książki zatytułowane „Teoria złożoności algebraicznej”, które wykorzystują i stosują pojęcia i techniki algebraiczne do złożoności. Istnieją także obszerne prace dotyczące teorii złożoności algebry. Musisz być bardziej konkretny, aby uzyskać odpowiedź.
Kaveh

Odpowiedzi:


12

[Złożoność obliczeniowa i teoria kategorii] wydają się być takimi naturalnymi parami.

Biorąc pod uwagę znaczenie złożoności obliczeniowej jako dziedziny badań, gdyby byli oni takimi naturalnymi podopiecznymi, może ktoś już zauważyłby związek?

Dzikie spekulacje. Niech zabawię czytelnika przemyśleniami na temat tego, dlaczego kategoryczne renderowanie złożoności obliczeniowej jest trudne. Prawdopodobnie kluczowy klaster koncepcji w teorii kategorii koncentruje się wokół uniwersalnych konstrukcji / właściwości (wraz z powiązanym aparatem funktorów, przekształceń naturalnych, przyłączy itp.). Jeśli możemy wykazać, że konstrukcja matematyczna ma uniwersalną właściwość, daje to wiele wglądu. Więc jeśli chcieliśmy kategorycznego podejścia do złożoności obliczeniowej, musielibyśmy znaleźć dogodną kategorię i pokazać, w jaki sposób kluczowe pojęcia teorii złożoności (np. LOGSPACE lub twardość NP) mogą być podane przez konstrukcje uniwersalne wykorzystujące tę kategorię. Nie zostało to jeszcze zrobione i myślę, że dzieje się tak, ponieważ jest to naprawdę trudny problem.

T.=T.1T.2)T.3)T.ja,1 . Zamiast tego konstruujemy bazy TM, określając oddzielnie ich dwa komponenty: kontrolkę (FSM) i taśmę. Ani kontrola, ani taśma nie mają samych dobrych algebr.

Najpierw spójrzmy na taśmy. Istnieje kilka naturalnych sposobów komponowania taśm, z których żaden nie wydaje się działać w przypadku opisu składu baz TM.

  • Sklej je jak zwykły dodatek. Nie jest to właściwe pojęcie, ponieważ taśmy są nieskończone i sklejając je jak porządek porządkowy, otrzymujemy podwójny nieskończony obiekt, który wykracza poza skończone obliczenia, prowadząc do obliczeń nieskończonych / hiperkomputerowych, które są interesujące jako matematyczne, ale nie odpowiadają wykonalne obliczenia.

  • Trzymaj je równolegle , np. Dwie maszyny 3-głowicowe zamieniają się w maszyny 6-głowicowe. Nie mówi nam to, w jaki sposób komponenty współdziałają ze sobą.

  • Taśmy z przeplotem. Jednym z problemów związanych z tym podejściem jest to, że nie jest jasne, jakie może być przeplatanie kanoniczne, jeśli w ogóle. Co więcej, przeplatanie „myli” istniejącą kontrolę, która zwykle jest precyzyjnie dostosowywana do określonego układu taśmy. Dlatego nie możemy ponownie użyć kontroli bezpośrednio.

π

Podsumowując, jesteśmy dość daleko od znacznego algebraicznego / kategorycznego traktowania złożoności obliczeniowej i potrzebowalibyśmy kilku pojęć koncepcyjnych, aby się tam dostać.


λπλπαλπ


Powiedziałbym, że skład maszyn Turinga jest dość jasny, kiedy myślisz o nich jako abstrakcyjnych programach komputerowych. Naturalnym sposobem komponowania programów jest wywoływanie jednego jako podprogramu innego. Mówiąc bardziej ogólnie, każdy program jest obliczalny w skończonej funkcji czasu i przestrzeni, która przyjmuje pewne sformatowane dane wejściowe i wysyła inny sformatowany ciąg, który można wprowadzić do innej funkcji. Możliwe jest, że niektóre nieużywane dane wejściowe będą powodować wyrzucanie elementów bezużytecznych lub że niektóre funkcje nie będą działać w przydzielonym czasie i przestrzeni, w takim przypadku cały program ulega awarii.
Anton Fetisov

Oczywiście nie wszystkie programy można tak komponować, co oczywiście prowadzi nas do kategorii baz TM. Jest również prawdopodobne, że należy porzucić koncepcję TM nieograniczonej czasoprzestrzeni, co i tak nie jest praktycznie możliwe. Czy istnieje jakieś opublikowane pojęcie, które oddaje tę strukturę?
Anton Fetisov

@AntonFetisov Czy próbowałeś zapisać szczegóły? To nie jest ładne.
Martin Berger

2

Ta odpowiedź na temat izomorfizmów między językami formalnymi łączy wyniki algebraiczne z teorii kodów z pojęciami z teorii kategorii, aby zbadać możliwe pojęcia równoważności i izomorfizmu między językami formalnymi a klasami złożoności.

Moją własną interpretacją tych wyników jest to, że punkty synchronizacji w słowach są różne dla deterministycznych i jednoznacznych niedeterministycznych przetworników, a nawet różne między deterministycznymi przetwornikami do przodu i deterministycznymi do tyłu. Przyjmując tę ​​perspektywę punktów synchronizacji, można połączyć te wyniki z widocznymi językami przesuwania w dół i rodzi pytanie, czy powinny one również uwzględniać proste separatory (takie jak spacja lub przecinek) oprócz połączeń i zwrotów. (Domyślam się, że separator może być emulowany przez połączenie powrotne + wywołanie, ale ponieważ wymagają one dwóch symboli zamiast jednego, nie jest dla mnie jasne, czy to wystarczy. Mogą istnieć również widoczne języki, które mają tylko separatory, ale nie symbole połączeń lub zwrotów).


Stworzyłem to wiki społeczności, ponieważ prowadzi ono do mojej własnej odpowiedzi na moje pytanie, co z pewnością nie jest świetne. „Czyściłem” moich ulubionych i właśnie napisanie tej krótkiej odpowiedzi było najłatwiejszym sposobem na kontynuację.
Thomas Klimpel
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.