Dobra referencja dla operatorów klasy złożoności?

16

Interesuje mnie, czy istnieją jakieś dobre artykuły ekspozycyjne lub ankiety, do których mogę się odnieść, pisząc o operatorach klas złożoności : operatorach, które przekształcają klasy złożoności, np. Dodając do nich kwantyfikatory.

Przykłady operatorów

Poniższe można interpretować jako absolutną minimalną listę operatorów, którą odpowiedź powinna umieć opisać. Tutaj jest dowolnym zestawem języków, nad dowolnym skończonym alfabetem .CC ΣΣ

C : = { L Σ |A C.f O ( p o l y ( n ) )x Σ :[ xLc Σ f ( | x | ) : ( x , c ) A ] }C:={LΣACfO(poly(n))xΣ:[xLcΣf(|x|):(x,c)A]}

  • Operator najwyraźniej został wprowadzony przez Wagnera [1], aczkolwiek z notacją zamiast . Najbardziej znanym przykładem klasy skonstruowanej w ten sposób . Ten operator jest wyposażony w uzupełniający kwantyfikator , w którym definicji jest zastąpione przez , co pozwala łatwo zdefiniować całą hierarchię wielomianową: na przykład . Może to być pierwszy zdefiniowany operator.CCC CN P = PNP=Pc cc cΣ P 2 P = PΣP2P=P

C : = { L Σ |A C.f O ( p o l y ( n ) )x Σ :[ xL# { c Σ f ( | x | ) : ( x , c ) A } 0( mod2 ) ] }C:={LΣACfO(poly(n))xΣ:[xL#{cΣf(|x|):(x,c)A}≢0(mod2)]}

  • Operator jest podobny do operatora pod tym względem, że C.C dotyczy liczby istniejących certyfikatów, które są weryfikowalne w klasie doC , ale zamiast tego zlicza liczbę certyfikatów modulo 2)2 . Można tego użyć do zdefiniowania klas P.P i L.L . Podobne operatorzy " M o d kModk " istnieją dla innych modułów kk .

c o C : = { L Σ |A C.x Σ : [ x Lx A ] }coC:={LΣACxΣ:[xLxA]}

  • Jest to operator komplementarny i jest milcząco używany do definiowania , , oraz wielu innych klas z tych, o których nie wiadomo, że są zamknięte w ramach uzupełnień.c o N P c o C = P c o M o d k LcoNPcoC=PcoModkL

B PC : = { ( Π 0 , Π 1 )|Π 0 , Π 1Σ IA C.f O ( p o l y ( n ) )x Σ :[ ( x Π 0# { c Σ f ( | x | ) : ( x , c ) A } 13|Σf(|x|)|)&(xΠ1#{cΣf(|x|):(x,c)A}23|Σf(|x|)|)]}BPC:=(Π0,Π1)Π0,Π1Σ&ACfO(poly(n))xΣ:[(xΠ0#{cΣf(|x|):(x,c)A}13|Σf(|x|)|)&(xΠ1#{cΣf(|x|):(x,c)A}23|Σf(|x|)|)]

- z przeprosinami za odstępy

  • Operator najwyraźniej został wprowadzony przez Schöninga [2], ale w celu zdefiniowania języków (tj. Nie zezwolił na lukę prawdopodobieństwa) i bez użycia jawnych stałych lub . Definicja tutaj powoduje problemy z obietnicą, z wystąpieniami YES i NO-wystąpień w . Zauważ, że i ; operator ten był używany przez Todę i Ogiwarę [3], aby pokazać, że .BPBP13132323Π1Π1Π0Π0BPP=BPPBPP=BPPAM=BPNPAM=BPNPP#PBPPP#PBPP

Uwagi

Innymi ważnymi operatorami, które można wyodrębnić z definicji klas standardowych, są (z klas i ) i (z klas i ). W większości literatury zakłada się również, że (uzyskiwanie problemów funkcji z klas decyzyjnych) i (uzyskiwanie klas zliczania z klas decyzyjnych) są również operatorami złożoności.C=CC=CC=PC=PC=LC=LCCCCPPPPPLPLFF##

Istnieje artykuł Borcherta i Silvestri [4], w którym zaproponowano zdefiniowanie operatora dla każdej klasy, ale wydaje się, że w literaturze niewiele się o nim mówi; Martwię się również, że takie ogólne podejście może mieć subtelne problemy definicyjne. Z kolei odnoszą się do dobrej prezentacji Köblera, Schöninga i Torána [5], która ma jednak już ponad 20 lat i wydaje się, że tęskni za .

Pytanie

Jaka książka lub artykuł jest dobrym źródłem informacji dla operatorów klasy złożoności?

Bibliografia

[1]: K. Wagner, Złożoność problemów kombinatorycznych z zwięzłymi reprezentacjami danych wejściowych , Acta Inform. 23 (1986) 325–356.

[2]: U. Schöning, Probabilistyczne klasy złożoności i lowness , w Proc. 2. konferencja IEEE nt. Struktury w teorii złożoności, 1987, s. 2-8; także w J. Comput. System Sci., 39 (1989), s. 84–100.

[3]: S. Toda i M. Ogiwara, Liczenie klas jest co najmniej tak trudne, jak hierarchia czasu wielomianowego , SIAM J. Comput. 21 (1992) 316–328.

[4]: B. i Borchert, R. Silvestri, operatory kropkowe, Theoretical Computer Science tom 262 (2001), 501–523.

[5]: J. Köbler, U. Schöning i J. Torán, The Graph Isomorphism Problem: Its Structural Complexity, Birkhäuser, Basel (1993).

Niel de Beaudrap
źródło
Godnym uwagi poprzednikiem pojęcia operatora złożoności jest traktowanie [6]: S. Zachosa, kwantyfikatorów probabilistycznych, przeciwników i klas złożoności: przegląd, Proc. z konferencji nt. struktury w teorii złożoności (str. 383--400), Berkeley, Kalifornia, 1986, cytowanej przez Schöninga [2] powyżej w związku z . BPNPBPNP
Niel de Beaudrap
3
Ponownie Zachos może to również pomóc: Złożoność kombinacyjna: operatorzy na klasach złożoności
Alessandro Cosentino
@NieldeBeaudrap Zachos to ten, który jako pierwszy wymyślił pojęcie operatorów klasy złożoności. Przypominam sobie z jego wykładów, że wyraźnie to stwierdził. Jest też jeden dla przeważającej większości, . ++
Tayfun Pay
@TayfunPay: w rzeczy samej kwantyfikator jest użyteczny do opisania , chociaż używa dwustronnego formalizmu opisanego w [6] (w moim komentarzu powyżej) zamiast sposobu opisanego przez Schöninga. ++BPBP
Niel de Beaudrap
@NieldeBeaudrap Istnieje również inny, którego można użyć do zdefiniowania nieograniczonego błędu dwustronnego . 1/21/2
Tayfun Pay

Odpowiedzi:

15

Oto odniesienie z wieloma definicjami operatorów (choć niewiele szczegółów):

S. Zachos i A. Pagourtzis, Złożoność kombinacyjna: operatory na klasach złożoności , postępowanie czwartego sympozjum logiki panhellenicznej (PLS 2003), Saloniki, 7-10 lipca 2003.

  • Definiuje operator tożsamości , a także operatorów -, (odpowiadający powyżej), , (odpowiadający ograniczonemu jeden- błąd jednostronny), , (odpowiadający niedeterminizmowi z unikalnym przejściem akceptującym), (odpowiadający nieograniczonemu dwustronnemu błędowi) i (które dla klasy tworzy ).EEcocoNNBPBPRRUUPPΔΔCCCcoCCcoC

  • To pokazuje że:

    1. EE jest elementem tożsamości w odniesieniu do składu [Definicja 1];
    2. coco - jest samo-odwrotny [Definicja 2];
    3. NN jest idempotentny [Definicja 3] - domyślnie jest tak, że , , , i są również idempotentni;BPBPRRUUPP
    4. BPBP i dojeżdżają do pracy z - [Definicje 4 i 8], podczas gdy jest niezmienny we właściwym składzie z - [Definicja 6];PPcocococo
    5. Powyższe operatory są monotoniczne (to znaczy dla wszystkich operatorów powyżej) :C1C2OC1OC2C1C2OC1OC2OO

W całym dokumencie opisano także kilka sposobów, w jakie operatorzy ci odnoszą się do tradycyjnych klas złożoności, takich jak , , , itp.Σp2PΣp2PZPPZPPAMAMMA

Alessandro Cosentino
źródło
14

Jako wstępne odniesienie do pojęcia operatora złożoności (i demonstrującego niektóre zastosowania tego pomysłu), najlepsze, co do tej pory znalazłem, to

D. Kozen, Theory of Computation (Springer 2006)

który pochodzi z notatek z wykładów na temat złożoności obliczeniowej i pokrewnych tematów. Na stronie 187 („Wykład uzupełniający G: Twierdzenie Tody”) definiuje operatory

  • R (dla losowych certyfikatów z ograniczonym jednostronnym błędem, jak w klasie R P )
  • B P (dla losowych certyfikatów z ograniczonym błędem dwustronnym, patrz wyżej)
  • P (dla losowych certyfikatów z nieograniczonym błędem, por. C w uwagach powyżej)
  • (nieparzysta liczba certyfikatów, patrz wyżej)
  • Σ P (istnienia certyfikatów wielomian długości CF wyżej)
  • Σ l O g (w przypadku istnienia O ( log n ) certyfikatów -długość CF powyżej)
  • Π p i Π l o g (operatory uzupełniające do Σ p i Σ l o g : patrz uwagi do powyżej)
  • # (definiowanie klasy liczącej, patrz uwagi powyżej)

i milcząco definiuje c o - na stronie 12 w zwykły sposób.

Traktowanie tych operatorów przez Kozen'a wystarczy, aby wskazać, w jaki sposób są one powiązane z „zwykłymi” klasami złożoności i opisać twierdzenie Tody, ale niewiele mówi o ich relacjach i wspomina o nich tylko na 6 stronach (na końcu książka na znacznie szerszy temat). Mam nadzieję, że ktoś może podać lepsze odniesienie niż to.

Niel de Beaudrap
źródło