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).
quelle
Antworten:
Hier ist eine Referenz mit vielen Definitionen von Operatoren (allerdings nicht viele Details):
Es definiert einen Identitätsoperator E sowie Operatoren c o -, N (entsprechend ∃ oben), B P , R (entsprechend einem begrenzten einseitigen Fehler), ⊕ , U (entsprechend einem Nichtdeterminismus mit einer eindeutigen Annahme Übergang), P (entsprechend unbeschränkte zweiseitige Fehler) und Δ (die für eine Klasse C Formen C ∩ c o C ).E co N ∃ BP R ⊕ U P Δ C C∩coC
Es zeigt, dass:
Außerdem werden eine Reihe von Möglichkeiten beschrieben, wie sich diese Operatoren auf traditionelle Komplexitätsklassen beziehen, z. B. Σ p 2 P , Z P P , A M , M A usw.Σp2P ZPP AM MA
quelle
Als einleitender Verweis auf den Begriff des Komplexitätsoperators (und zur Demonstration einiger Anwendungen der Idee) ist das Beste, was ich bisher gefunden habe, das Beste
das aus Vorlesungsskripten über die Komplexität von Berechnungen und verwandte Themen abgeleitet wird. Auf Seite 187 ("Zusatzvorlesung G: Todas Theorem") definiert er die Operatoren
und definiert stillschweigend c o - auf Seite 12 auf die übliche Weise.
Kozens Behandlung dieser Operatoren reicht aus, um zu zeigen, wie sie mit den "üblichen" Komplexitätsklassen verbunden sind, und um Todas Theorem zu beschreiben, erörtert jedoch nicht viel ihre Beziehungen und erwähnt sie nur für insgesamt 6 Seiten (im Übrigen ein Buch, das ein viel breiteres Thema behandelt). Hoffentlich kann jemand eine bessere Referenz liefern.
quelle