Palavra de aviso
# Palavra de aviso

Na teoria de complexidade computacional, uma palavra de aviso é uma entrada adicional para uma Máquina de Turing que é permitida depender do comprimento de entrada n, mas não sobre a própria entrada. Um problema de decisão está na classe de complexidade P/f(n) se houver uma Máquina de Turing de tempo polinomial M com a seguinte propriedade: para qualquer n, há uma palavra de aviso A de comprimento f(n), de tal modo que, para qualquer entrada x de comprimento n , a máquina M decidi corretamente o problema da entrada x , dado x e A.
A classe de complexidade mais comum envolvendo aviso é P/polinomial onde o comprimento do aviso f(n) pode ser qualquer polinômio em n. P/polinomial é igual ao problema de decisão de classes de tal modo que, para todo n, existe um Circuito booleano de tamanho polinomial decidindo corretamente o problema em todas as entradas de comprimento n. Uma direção da equivalência é fácil de ver. Se, para cada n, existe um circuito booleano de tamanho polinomial A(n) decidindo o problema, podemos usar uma Máquina de Turing que interpreta a palavra de aviso como uma descrição do circuito. Então, dada a descrição de A(n) como o aviso, a máquina vai decidir corretamente o problema em todas as entradas de comprimento n. A outra direção utiliza uma simulação de uma máquina de Turing de tempo polinomial por um circuito de tamanho polinomial como em uma prova do Teorema de Cook-Levin. Simulando uma máquina de Turing com avisos não é mais complicado do que simulando uma máquina normal, uma vez que a palavra de aviso pode ser incorporada no circuito.
Devido a esta equivalência, P/polinomial às vezes é definida como a classe de problemas de decisão que podem ser resolvidos por circuitos booleanos de tamanho polinomiais, ou por um circuito booleano de tamanho polinomial não uniforme.
P/polinomial contém P e BPP (teorema de Adleman). Ele também contém alguns problemas indecidíveis, tais como a versão unary de cada problema indecidível, incluindo o Problema da parada. Por causa disso, não está contido no DTIME (f(n)) ou NTIME (f(n)) para qualquer f.
Classes de aviso podem ser definidas para outros limites de recursos ao invés de P. Por exemplo, tomando uma máquina de Turing não-determinística de tempo polinomial com um aviso de comprimento f(n) dá a classe de complexidade NP/f(n). Se nos é permitido um aviso de comprimento 2$^n$, podemos usá-lo para codificar se cada entrada de comprimento n está contido na linguagem. Portanto, qualquer função booleana é computável com um aviso de comprimento 2$^n$ e aviso de tamanho maior que exponencial não é significativo
Similarmente, a classe L/polinomial pode ser definida como LSPACE com um aviso de valor polinomial.
Resultados conhecidos incluem::