Ich bin daran interessiert, ob es gute Expository-Artikel oder Umfragen gibt, auf die ich mich beziehen kann, wenn ich über Komplexitätsklassenoperatoren schreibe : Operatoren, die Komplexitätsklassen transformieren, indem sie ihnen beispielsweise Quantifizierer hinzufügen.
Beispiele für Operatoren
Das Folgende kann als eine minimale Liste von Operatoren interpretiert werden, die eine Antwort beschreiben kann. Hier C
∃ C : = { L ⊆ Σ ∗|∃ A ∈ C∃ f ∈ O ( p o l y ( n ) )∀ x & egr ; & Sgr; * :[ x∈L⟺∃ c ∈ & Sgr; f ( | x | ) : ( x , c ) ∈ A ] }
∃C:={L⊆Σ∗∣∣∣∃A∈C∃f∈O(poly(n))∀x∈Σ∗:[x∈L⟺∃c∈Σf(|x|):(x,c)∈A]}
- Der Operator ∃
∃ wurde offenbar von Wagner [1] eingeführt, allerdings mit der Notation ⋁C⋁C statt ∃ C∃C . Das bekannteste Beispiel einer Klasse auf diese Weise aufgebaut ist N P = ∃ PNP=∃P . Dieser Operator wird mit einem komplementären quantifier ∀∀ , in dem die ∃ c∃c in der Definition ersetzt ∀ c∀c , den man die gesamte Polynom Hierarchie leicht definieren kann: zum Beispiel Σ P 2 P = ∃ ∀ PΣP2P=∃∀P . Dies ist möglicherweise der erste definierte Operator.
⊕ C : = { L ⊆ Σ ∗|∃ A ∈ C∃ f ∈ O ( p o l y ( n ) )∀ x & egr ; & Sgr; * :[ x∈L⟺# { c ∈ Σ f ( | x | ) : ( x , c ) ∈ A } ≢ 0( mod2 ) ] }
⊕C:={L⊆Σ∗∣∣∣∃A∈C∃f∈O(poly(n))∀x∈Σ∗:[x∈L⟺#{c∈Σf(|x|):(x,c)∈A}≢0(mod2)]}
- The ⊕
⊕ operator is similar to the ∃∃ operator in that ⊕C⊕C concerns the number of certificates which exist that are verifiable in the class CC , but instead counts the number of certficiates modulo 22 . This can be used to define the classes ⊕P⊕P and ⊕L⊕L . Similar operators "Modk⋅Modk⋅ " exist for other moduli kk .
coC:={L⊆Σ∗|∃A∈C∀x∈Σ∗:[x∈L⟺x ∉ A ] }
coC:={L⊆Σ∗∣∣∃A∈C∀x∈Σ∗:[x∈L⟺x∉A]}
- Dies ist der komplementäre Operator und wird stillschweigend verwendet, um c o N P , c o C = P , c o M o d k L und eine Vielzahl anderer Klassen aus solchen zu definieren, von denen nicht bekannt ist, dass sie unter Komplementen geschlossen sind.
coNP coC=P coModkL
B P ⋅ C : = { ( Π 0 , Π 1 )|Π 0 , Π 1 ⊆ & Sigma; *&∃ A ∈ C∃ f ∈ O ( p o l y ( n ) )∀ x & egr ; & Sgr; * :[ ( X ∈ & Pgr; 0 ⇔ # { c ∈ & Sigma; f ( | x | ) : ( x , c ) ∈ A } ⩽ 13|Σf(|x|)|)&(x∈Π1⇔#{c∈Σf(|x|):(x,c)∈A}⩾23|Σf(|x|)|)]}
BP⋅C:=⎧⎩⎨⎪⎪⎪⎪(Π0,Π1)∣∣∣∣∣Π0,Π1⊆Σ∗&∃A∈C∃f∈O(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|)|)]⎫⎭⎬⎪⎪⎪⎪
— with apologies for the spacing
- The BP
BP operator was apparently introduced by Schöning [2], albeit to define languages (i.e. he did not permit a probability gap) and without using the explicit constants 1313 or 2323 . The definition here yields promise-problems instead, with YES-instances Π1Π1 and NO-instances in Π0Π0 . Note that BPP=BP⋅PBPP=BP⋅P , and AM=BP⋅NPAM=BP⋅NP ; this operator was used by Toda and Ogiwara [3] to show that P#P⊆BP⋅⊕PP#P⊆BP⋅⊕P .
Remarks
Andere wichtige Operatoren, die man aus den Definitionen der Standardklassen abstrahieren kann, sind C = ⋅ C (aus den Klassen C = P und C = L ) und C ⋅ C (aus den Klassen P P und P L ). In den meisten Literaturstellen ist auch implizit enthalten, dass F ⋅ (sich aus Entscheidungsklassen ergebende Funktionsprobleme) und # ⋅ (sich aus Entscheidungsklassen ergebende Zählklassen) ebenfalls Komplexitätsoperatoren sind.
Es gibt einen Artikel von Borchert und Silvestri [4], der vorschlägt, einen Operator für jede Klasse zu definieren, auf den in der Literatur jedoch nicht viel Bezug zu nehmen scheint. Ich mache mir auch Sorgen, dass solch ein allgemeiner Ansatz subtile Definitionsprobleme haben könnte. Sie verweisen wiederum auf eine gute Präsentation von Köbler, Schöning und Torán [5], die mittlerweile über 20 Jahre alt ist und auch zu versäumen scheint ⊕ .
Frage
Welches Buch oder welcher Artikel ist eine gute Referenz für Komplexitätsklassenoperatoren?
Verweise
[1]: K. Wagner, Die Komplexität kombinatorischer Probleme mit prägnanten Eingabedarstellungen , Acta Inform. 23 (1986) 325–356.
[2]: U. Schöning, Probabilistische Komplexitätsklassen und Lowness , in Proc. 2. IEEE-Konferenz über Struktur in der Komplexitätstheorie, 1987, S. 2-8; auch in J. Comput. System Sci., 39 (1989), S. 84-100.
[3]: S. Toda und M. Ogiwara, Zählklassen sind mindestens so schwer wie die Hierarchie der Polynomzeit , SIAM J. Comput. 21 (1992) 316–328.
[4]: B. und Borchert, R. Silvestri, Punktoperatoren , Theoretical Computer Science Volume 262 (2001), 501–523.
[5]: J. Köbler, U. Schöning und J. Torán, The Graph Isomorphism Problem: Its Structural Complexity, Birkhäuser, Basel (1993).