A definição de P é uma linguagem que pode ser decidida por um algoritmo de tempo polinomial. A definição de P / poli pode ser entendida como uma linguagem que pode ser decidida por um circuito de tamanho polinomial (consulte http://pages.cs.wisc.edu/~jyc/02-810notes/lecture09.pdf ). Agora, por que um circuito de tamanho polinomial não pode ser simulado em tempo polinomial?
10
Respostas:
O ponto sobre os circuitos é que um circuito possui um número fixo de entradas. Isto significa que, para definir uma linguagem, precisamos de uma família de circuitosC0,C1,C2,… tal que o circuito Ci diz-lhe que strings de comprimento i estão no idioma, para cada i . Isso não exige que não deve haver qualquer relação entre a circuitos Ci e Ci+1 : eles pode ser completamente diferente. Em particular, para qualquer conjunto S⊆N , você pode definir declarar Ci=true sei∈S eCi=false parai∉S . Mesmo queS seja indecidível!
Por outro lado, um idioma está emP se houver uma única máquina de Turing que informa se todas as entradas possíveis de todos os comprimentos possíveis estão no idioma. Agora, você não pode jogar nenhum jogo engraçado sobre entradas de diferentes comprimentos.
Você está correto que possamos avaliar qualquer circuito fixo emP . Mas isso não é necessariamente suficiente para decidir uma linguagem em P/poly . Para fazer isso, primeiro precisamos calcular o comprimento da entrada, depois usá-lo para determinar qual circuito Ci precisamos avaliar e depois avaliar o circuito. Como mostra o exemplo acima, a parte "determinar qual circuito" pode nem ser computável, muito menos computável em tempo polinomial.
fonte