En termes simples: quelle est la correspondance entre les machines de Turing avec oracles et les familles de circuits uniformes avec oracles? Comment ces derniers sont-ils définis afin d'obtenir le même modèle de calcul, pour une machine Oracle Turing donnée?
Cela peut être une question élémentaire, mais il n'est pas évident de savoir où chercher, et je suis le genre de personne qui aime s'assurer que mes fondations utilisent un mortier de bonne qualité. S'il existe une référence standard, veuillez me l'indiquer. (Le livre de Papadimitriou, par exemple, ne semble pas du tout décrire des circuits avec des oracles.)
Mon hypothèse de travail est la suivante: une famille de circuits uniformes avec accès à un oracle (par exemple pour résoudre un problème NP-complet) est définie comme suit:
On définit une famille infinie de "portes d'oracle" O n , une pour chaque taille de circuit n, chacune calculant une fonction f n : {0,1} cn → {0,1} pour une constante c.
Les fonctions f n calculées par les portes oracles O n doivent être "uniformes" dans le sens suivant: pour tout n <N et x ∈ {0,1} n , nous avons besoin de f n ( x ) = f N (0 c ( N − n) x ) --- c'est-à-dire que les portes oracle doivent utiliser un "encodage" cohérent et extensible de leurs entrées.
On définit alors une famille de circuits uniformes, où les portes oracles sont parmi les opérations autorisées au circuit, restreignant le circuit pour la taille d'entrée n pour utiliser la porte O n .
J'imagine que certains des choix ci-dessus peuvent être arbitrairement fixés sans perdre aucune généralité. Ce qui m'intéresse, c'est une référence pour la correspondance, ou du moins une description de la façon de modifier la description ci-dessus pour obtenir celle standard.