La définition de P est un langage qui peut être décidé par un algorithme de temps polynomial. La définition de P / poly peut être interprétée comme signifiant un langage qui peut être décidé par un circuit de taille polynomiale (voir http://pages.cs.wisc.edu/~jyc/02-810notes/lecture09.pdf ). Maintenant, pourquoi un circuit de taille polynomiale ne peut-il pas être simulé en temps polynomial?
10
Réponses:
Le point sur les circuits est qu'un circuit a un nombre fixe d'entrées. Cela signifie que, pour définir un langage, nous avons besoin d'une famille de circuitsC0, C1, C2, … telle que le circuit Cje vous indique quelles chaînes de longueur i sont dans le langage, pour chaque i . Cela n'exige pas qu'il y ait une relation entre les circuits Ci et Ci+1 : ils pourraient être complètement différents. En particulier, pour tout ensemble S⊆N , vous pouvez définir déclarer Ci=true sii∈S etCi=false pouri∉S . Même siS est indécidable!
En revanche, une langue est enP s'il existe une seule machine de Turing qui vous indique si chaque entrée possible de chaque longueur possible est dans la langue. Maintenant, vous ne pouvez pas jouer à des jeux amusants sur des entrées de différentes longueurs.
Vous avez raison que nous pouvons évaluer tout circuit fixeP . Mais cela ne suffit pas nécessairement pour décider d' une langue dans P/poly . Pour ce faire, nous devons d'abord calculer la longueur de l'entrée, puis l'utiliser pour déterminer le circuit Ci nous devons évaluer, puis évaluer le circuit. Comme le montre l'exemple ci-dessus, la partie "déterminer quel circuit" pourrait même ne pas être calculable, et encore moins calculable en temps polynomial.
la source