Les oracles sont-ils associatifs?

11

Cette question peut avoir une réponse évidente ... mais voici la question de toute façon. Intuitivement, c'est la déclaration plausible suivante - "une machine avec un sous-programme A qui à son tour a un sous-programme B est la même chose qu'une machine avec un sous-programme A qui a accès au sous-programme B".

Pour définir formellement ce problème, j'utiliserai une notation non conventionnelle. Quand je dis , je donne à un oracle pour un problème . par exemple . Avec cette "nouvelle" notation, il est possible de définir , etc. Ma question est, est A B - C o m p l e t e N P N P = N P S A T = Σ 2 A B CABABCompleteNPNP=NPSAT=Σ2ABC

  • est-ce une façon valable de penser aux oracles?
  • est(AB)C=A(BC)

Par exemple,(NPNP)NP=Σ2NP=NPΣ2=NP(NPNP)

Je ne peux penser à aucun contre-exemple évident de cette règle. N'importe qui?

gabgoh
la source
Avez-vous vu ma question: cstheory.stackexchange.com/q/972/873 ?
MS Dousti du
1
c'est une question un peu plus générale, mais la question de Sadeq est tout à fait pertinente, et en particulier les commentaires sur le mal formé de A ^ B ^ C si A ^ B n'est pas un modèle de calcul
Suresh Venkat
non, mais c'est exactement ce que je me cognais la tête contre le mur hier soir qui a motivé cette question!
gabgoh
Voir aussi cette question .
Kaveh

Réponses:

5

Comme Venkat l'a dit dans les commentaires, il semble difficile de comprendre votre définition d'oracle qui n'est pas définie comme une caractérisation de machine.

Soit serait l'ensemble de TM en A avec un oracle qui est une machine en ( B avec un oracle dans une machine en C ). Il est évident qu'une machine A peut appeler C : il appelle simplement la machine B et lui demande de porter le message directement à C .UNE(BC)UNEBCUNECBC

Je suppose que serait une machine en A qui peut appeler un oracle en C ou un oracle qui est (une machine en B qui peut appeler une machine en C ), c'est donc exactement la même définition.(UNEB)CUNECBC

Enfin, vous voudrez peut-être , qui est certainement différent des deux autres (prenez simplement B = C = N P et A = P , puis A B , C = N P c o N P tandis que A ( B C ) = Σ P 2Π p 2 .UNEB,CB=C=NPUNE=PUNEB,C=NPcoNPUNE(BC)=Σ2PΠ2p

Arthur MILCHIOR
la source
4
Soyez prudent: P ^ NP comprend NP∪coNP, mais il n'est pas connu ou ne serait pas égal à NP∪coNP. De même, P ^ (NP ^ NP) n'est pas connu pour être égal à ∪Π2P∪Π2P.
Tsuyoshi Ito du
1
@Tsuyoshi, merci pour la remarque, je ne sais pas pourquoi j'ai pensé ça. En fait , si il est clair que P N P . Laissez - A et B des problèmes NPcomplte et coNPcomplete, le problème qui prend entrée ( x , y ) et répondre à vrai si x A et y B est dans P N P mais pas N P c o N P . NPcoNPPNPUNEB(X,y)XUNEyBPNPNPcoNP
Arthur MILCHIOR
3

J'écrirais ce qui suit comme commentaire, mais c'était trop long pour tenir.

Décrivons d'abord la signification des «algorithmes de classe avec un oracle pour un langage A.» (La nécessité de cela a été soulignée par Tsuyoshi Ito). Nous utiliserons la même convention que celle utilisée par Ladner et Lynch . La convention est bien décrite par Bennett & Gill :C

peut être défini de différentes manières, selon la façon dont la bande de requête est gérée. Nous suivons les conventions de Ladner et Lynch [LL]: la bande de requête n'est pas facturée par rapport à l'espace, mais pour l'empêcher d'être utilisée comme bande de travail, la bande de requête est unidirectionnelle et en écriture seule, et est effacée suivant automatiquement chaque requête. (Simon [Si] traite la bande de requête comme l'une des bandes de travail, une bande de lecture / écriture bidirectionnelle qui est chargée contre l'espace délimité. La définition de Ladner-Lynch est moins restrictive et peut-être plus naturelle, car pour un oracle aléatoireA L O G S P A C E ALOgSPUNECEUNEUNELOgSPUNECEUNE vaut avec probabilité 1 pour [LL] mais pas pour [Si])

[LL] RE LADNER ET NA LYNCH, Relativisation des questions sur la calculabilité de l'espace logarithmique , Math. Systems Theory, 10 (1976), pp. 19-32.

[Si] J. SIMON, Sur certains problèmes centraux de la complexité informatique , Tech. Rep TR 75-224, Dept. of Computer Science, Cornell University, Ithaca, NY, 1975.

La définition standard des classes de complexité des machines Oracle est la suivante: Soit B et C des classes de complexité . Ensuite, est une classe de complexité légitime, définie comme X = L C B L . Ici, B L représente la classe de complexité des problèmes de décision résolubles par un algorithme de classe B avec un oracle pour un langage L.X=BCX=LCBLBL

Puisque X est une classe de complexité légitime, pour une classe de complexité A, on peut parler des classes de complexité et X A = ( B C ) A .UNEX=UNE(BC)XUNE=(BC)UNE

  • fait référence à la classe decomplexité des problèmes de décision résoluble par un algorithme en classe A avec un oracle pour tout langage L 'X = L C B L . En d'autres termes, A X = L { L C B L } A L .UNEXLX=LCBLUNEX=L{LCBL}UNEL

  • fait référence à la classe decomplexité des problèmes de décision résoluble par un algorithme en classe X = L C B L avec un oracle pour tout langage L 'A . En d'autres termes, X A = L A X L = L A ( L C B L ) L .XUNEX=LCBLLUNEXUNE=LUNEXL=LUNE(LCBL)L

Allégation: .(BL1)L(BL2)L=(BL)L1L2

Side Note: Since it's 3:00 AM now, I'm too sleepy to check the validity of the above claim! I think it's valid & elementary to prove, yet it's nice to see the actual proof.

Par conséquent, on peut écrire .XUNE=LUNE(LCBL)L=LC,LUNE(BL)L

Exemple

Laissez . Nous savons que c o N PX . Donnant à la fois l' accès à des côtés de l' oracle N P , on obtient: c o N P N PX N P = ( P N P ) N P .X=PNPcoNPXNPcoNPNPXNP=(PNP)NP

Épilogue

Une discussion fructueuse avec Tsuyoshi Ito a révélé (pour moi) qu'il n'est pas facile de relativiser doublement une classe de complexité. En fait, même en définir un semble problématique. Je devrais certainement étudier davantage pour voir si une définition satisfaisante est jamais donnée. En attendant, j'apprécie tout commentaire qui peut être utilisé pour résoudre ce problème.

MS Dousti
la source
4
Comme je l'ai commenté sur une autre question , «l'algorithme de classe B avec un oracle pour une langue L» n'a pas de définition universellement acceptée en général.
Tsuyoshi Ito
@Tsuyoshi: J'ai modifié la réponse pour représenter la définition que j'utilise. Enlève-t-il la malformation?
MS Dousti
Non. La partie ajoutée définit uniquement ce que LOGSPACE ^ A signifie, pas ce que B ^ A signifie pour quelque chose comme B = NP ^ NP.
Tsuyoshi Ito
UNEXUNECXC
4
Malheureusement, votre «besoin naturel» n'est en fait pas si naturel. Bien que PSPACE⊆IP et qu'il existe une définition naturelle et largement acceptée de IP ^ A pour n'importe quelle langue A (le vérificateur a un accès oracle à A), il est connu que PSPACE ^ A⊈IP ^ A avec une probabilité 1 pour un aléatoire oracle A; voir Chang, Chor, Goldreich, Hartmanis, Håstad, Ranjan et Rohatgi 1994 . Comme je l'ai dit, il n'y a pas de définition largement acceptée de C ^ A pour une classe de complexité arbitraire C pour autant que je sache. (plus)
Tsuyoshi Ito