Właśnie zaczynam wchodzić w teorię obliczeń, która bada, co można obliczyć, jak szybko, z wykorzystaniem ilości pamięci iz jakim modelem obliczeniowym.
Mam dość podstawowe pytanie, ale naprawdę mam nadzieję, że niektórzy z was pomogą mi zrozumieć koncepcję:
Dlaczego wszystko koncentruje się wokół pojęcia i definicji JĘZYKÓW (tj. Języków zwykłych i języków bezkontekstowych)? W jaki sposób odnoszą się one i opisują złożoność algorytmu oraz możliwe modele obliczeniowe do ich rozwiązania?
Czytam podobne pytania:
- /cstheory/14811/what-is-the-enlightenment-im-supposed-to-attain-after-studying-finite-automata
- /cstheory/8539/how-practical-is-automata-theory
ale wciąż nie mam odpowiedzi na moje wątpliwości, ponieważ dostarczają one praktycznego uzasadnienia, dlaczego są ważne (co rozumiem), ale nie pomagają mi zrozumieć, dlaczego na nich opiera się teoria złożoności.
Odpowiedzi:
To dlatego, że języki są najlepszym (jedynym?) Sposobem sformalizowania pojęcia „problemu”.
Po drugie, języki są po prostu ładną abstrakcją danych. Potrzebujesz czegoś, na co możesz zrobić dowody, czegoś, co możesz formalnie modelować. Kodowanie danych wejściowych i wyjściowych w postaci ciągu oznacza, że nie masz teraz do czynienia z bitami w pamięci, ale z obiektami matematycznymi o określonych właściwościach. Możesz o nich wnioskować i udowodnić ich dowody w sposób formalny i bardzo prosty.
Oto moje wyzwanie: znajdź sposób, aby matematycznie opisać problemy, które nie są językami. Nie wiem, czy języki są wyjątkowe, ale myślę, że to najprostsze narzędzie, jakie mamy, najłatwiejsze w obsłudze.
źródło
Istnieją dwie podstawowe odpowiedzi na twoje pytanie:
Teoria złożoności to coś więcej niż języki, na przykład klasy funkcji, złożoność arytmetyczna oraz podobszary algorytmów aproksymacji i niedopuszczalności.
Powody historyczne: jednym z podstawowych artykułów z teorii obliczalności było omówienie Entscheidungsproblem Hilberta (forma problemu zatrzymania).
Niestety niewiele wiem o tym drugim, ale pozwól mi rozwinąć ten pierwszy.
Złożoność poza językami
Złożoność obwodu arytmetycznego (lub teoria złożoności algebraicznej ) dotyczy złożoności obliczania różnych wielomianów. Ważnymi klasami złożoności są tutaj VP i VNP, a teoria złożoności geometrycznej jest ważnym projektem próbującym oddzielić VP i VNP (a później P i NP) z wykorzystaniem geometrii algebraicznej i teorii reprezentacji.
Innym ważnym przykładem złożoności algebraicznej jest szybkie mnożenie macierzy. Tutaj podstawowe pytanie brzmi: jak szybko możemy pomnożyć dwie macierze ? Podobne pytania dotyczą tego, jak szybko możemy pomnożyć liczby całkowite, jak szybko możemy przetestować liczby całkowite pod kątem pierwszeństwa (jest to problem decyzyjny!) I jak szybko możemy uwzględnić liczby całkowite.
Wypukła optymalizacja dotyczy problemów optymalizacyjnych, które można skutecznie (lub prawie rozwiązać) skutecznie. Przykładami są programowanie liniowe i półfinałowe, z których oba mają wydajne algorytmy. Tutaj interesuje nas zarówno optymalne, jak i samo optymalne rozwiązanie. Ponieważ często istnieje więcej niż jedno optymalne rozwiązanie, obliczenie optymalnego rozwiązania nie jest dobrze reprezentowane jako problem decyzyjny.
źródło
Spójrzmy na to pytanie z perspektywy teorii kategorii. Problemy decyzyjne (lub języki) odpowiadałyby wówczas przedmiotom kategorii, a dozwolone redukcje między dwoma problemami odpowiadałyby morfizmom (strzałkom) kategorii.
Mówienie o językach ma tę zaletę, że równoważność języków jest dobrze zdefiniowana (mianowicie przez równość ekstensywną). Dwa niezwiązane ze sobą problemy mogą prowadzić do tego samego języka, a następnie możemy uznać je za równoważne. Jeśli zamiast tego chcielibyśmy porozmawiać o problemach izomorficznych, musielibyśmy zdefiniować dozwolone morfizmy między dwoma problemami. Ale dozwolone morfizmy zależą od rozważanej faktycznej klasy złożoności, co czyni to podejście mniej odpowiednim do porównywania różnych klas złożoności.
Pojęcie problemów izomorficznych będzie zwykle grubsze niż pojęcie równoważnych języków, tzn. Dwa problemy mogą być izomorficzne, nawet jeśli ich powiązane języki nie są równoważne. Co gorsza, często istnieją różne rozsądne pojęcia dotyczące dozwolonych morfizmów, które są zgodne tylko w odniesieniu do dozwolonych izomorfizmów. Skupienie się na językach pozwala odłożyć takie problemy, dopóki nie będziemy mieli ochoty rozmawiać o różnych rozsądnych pojęciach redukcji (takich jak redukcja Karp vs. redukcja Cooka).
źródło