Je suis intéressé s'il existe de bons articles ou enquêtes expositifs auxquels je peux me référer lorsque j'écris sur les opérateurs de classes de complexité : des opérateurs qui transforment les classes de complexité en faisant des choses telles que leur ajouter des quantificateurs.
Exemples d'opérateurs
Ce qui suit peut être interprété comme une liste minimale d'opérateurs qu'une réponse devrait pouvoir décrire. Ici, est un ensemble arbitraire de langages, sur un alphabet fini arbitraire .C Σ
∃ C : = { L ⊆ Σ ∗|∃ A ∈ C∃ f ∈ O ( p o l y ( n ) )∀ x ∈ Σ ∗ :[ x∈L⟺∃ c ∈ Σ f ( | x | ) : ( x , c ) ∈ A ] }
∃ C : = { L ⊆ Σ∗∣∣∣∃ A ∈ C∃ f∈ O ( p o l y ( n ) )∀ x ∈ Σ∗:[ x∈L⟺∃c∈Σf(|x|):(x,c)∈A]}
- L' opérateur ∃
∃ a apparemment été introduit par Wagner [1], bien qu'avec la notation ⋁C⋁C plutôt que ∃ C∃C . L'exemple le plus célèbre d'une classe construite de cette manière est N P = ∃ PNP=∃P . Cet opérateur est livré avec un quantificateur complémentaire ∀∀ , dans lequel le ∃ c∃c dans la définition est remplacée par ∀ c∀c ,qui permet de définir facilement une toute hiérarchie polynomiale: par exemple, Σ P 2 P = ∃ ∀ PΣP2P=∃∀P . Il peut s'agir du premier opérateur défini.
⊕ C : = { L ⊆ Σ ∗|∃ A ∈ C∃ f ∈ O ( p o l y ( n ) )∀ x ∈ Σ ∗ :[ 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)]}
- L' opérateur ⊕ est similaire à l' opérateur ∃ en ce que ⊕ C concerne le nombre de certificats existants qui sont vérifiables dans la classe C , mais compte à la place le nombre de certficiates modulo 2 . Cela peut être utilisé pour définir les classes de P et ⊕ L . Des opérateurs similaires " M o d k ⋅ " existent pour d'autres modules k .
⊕ ∃ ⊕C C 2 ⊕P ⊕L Modk⋅ k
c o C : = { L ⊆ Σ ∗|∃ A ∈ C∀ x ∈ Σ ∗ : [ x ∈ L⟺x ∉ A ] }
coC:={L⊆Σ∗∣∣∃A∈C∀x∈Σ∗:[x∈L⟺x∉A]}
- C'est l'opérateur complémentaire, et est tacitement utilisé pour définir c o N P , c o C = P , c o M o d k L , et une foule d'autres classes parmi celles qui ne sont pas connues pour être fermées sous des compléments.
coNP coC=P coModkL
B P ⋅ C : = { ( Π 0 , Π 1 )|Π 0 , Π 1 ⊆ Σ ∗&∃ A ∈ 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|)|)]}
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
D'autres opérateurs importants que l'on peut déduire des définitions des classes standard sont C = ⋅ C (des classes C = P et C = L ) et C ⋅ C (des classes P P et P L ). Il est également implicite dans la plupart de la littérature que F ⋅
There is an article by Borchert and Silvestri [4] which propose to define an operator for each class, but which does not seem to be referred to much in the literature; I also worry that such a general approach may have subtle definitional issues. They in turn refer to a good presentation by Köbler, Schöning, and Torán [5], which however is now over 20 years old, and also seems to miss out ⊕
Question
What book or article is a good reference for complexity class operators?
References
[1]: K. Wagner, The complexity of combinatorial problems with succinct input representations, Acta Inform. 23 (1986) 325–356.
[2]: U. Schöning, Classes de complexité probabiliste et manque , dans Proc. 2e Conférence de l'IEEE sur la structure dans la théorie de la complexité, 1987, pp. 2-8; également dans J. Comput. System Sci., 39 (1989), pp. 84-100.
[3]: S. Toda et M. Ogiwara, Les classes de comptage sont au moins aussi dures que la hiérarchie polynomiale-temporelle , SIAM J. Comput. 21 (1992) 316–328.
[4]: B. et Borchert, R. Silvestri, Opérateurs de points, Theoretical Computer Science Volume 262 (2001), 501–523.
[5]: J. Köbler, U. Schöning et J. Torán, The Graph Isomorphism Problem: Its Structural Complexity, Birkhäuser, Basel (1993).