Deixe-me começar com alguns exemplos. Por que é tão trivial mostrar que o CVP está em P, mas é tão difícil mostrar que o LP está em P; enquanto ambos são problemas de P-completo.
Ou pegue a primalidade. É mais fácil mostrar compósitos em NP do que primos em NP (que exigiam Pratt) e, eventualmente, em P. Por que ele teve que exibir essa assimetria?
Conheço Hilbert, a necessidade de criatividade, as provas estão em NP etc. Mas isso não me impediu de ter uma sensação desconfortável de que há mais nisso do que aparenta.
Existe uma noção quantificável de "trabalho" e existe uma "lei de conservação" na teoria da complexidade? Isso mostra, por exemplo, que, embora CVP e LP sejam P completos, eles escondem suas complexidades em "lugares diferentes" - um na redução (o CVP é simples porque todo o trabalho é feito na redução?) E o outro na expressibilidade da língua.
Alguém mais enjoado também e com algumas idéias? Ou encolhemos os ombros e dizemos / aceitamos que essa é a natureza da computação?
Esta é a minha primeira pergunta ao fórum: dedos cruzados.
Edit: CVP é problema de valor do circuito e LP é programação linear. Obrigado Sadeq, por apontar uma confusão.
fonte
Respostas:
Esta é uma pergunta que me passou pela cabeça muitas vezes.
Eu acho que um lugar para procurar é a teoria da informação. Aqui está uma especulação minha. Dado um problema, talvez possamos atribuir algum tipo de valor de entropia às informações fornecidas como entrada e às informações recebidas do algoritmo. Se pudéssemos fazer isso, haveria uma quantidade mínima de ganho de informações exigida por um algoritmo para resolver esse problema.
Há uma coisa relacionada que eu queria descobrir. Em alguns problemas NP-completos, você pode encontrar uma versão restrita em P; com o caminho Hamiltoniano, se você especificar que o gráfico é um DAG, existe um algoritmo p-time para resolvê-lo. Com outros problemas como o TSP, geralmente existem algoritmos de tempo-p que se aproximam do ideal. Parece-me que, para algoritmos de tempo p restritos, deve haver alguma relação proporcional entre as informações de adição assumidas e a redução da complexidade em tempo de execução. No caso do TSP, não estamos assumindo informações adicionais, estamos relaxando a precisão, que espero ter um efeito semelhante em qualquer tipo de ganho de informações algorítmicas.
Nota sobre leis de conservação
No início dos anos 1900, havia pouco conhecido matemático alemão-americano chamado Emily Noether. Entre outras coisas, ela foi descrita por Einstein e Hilbert como a mulher mais importante da história da matemática. Em 1915, ela publicou o que hoje é conhecido como Primeiro Teorema de Noether . O teorema era sobre leis físicas de conservação e dizia que todas as leis de conservação têm uma simetria diferencial correspondente no sistema físico. A conservação do momento angular vem de uma simetria rotacional no espaço, a conservação do momento linear é a tradução no espaço, a conservação da energia é a tradução no tempo. Dado que, para que exista alguma lei de conservação da complexidade em um sentido formal, seria necessário haver alguma simetria diferencial correspondente em uma função Langragiana.
fonte
Eu acho que a razão está no sistema lógico que usamos. Cada sistema formal possui um conjunto de axiomas e um conjunto de regras de inferência .
A duração da prova de um teorema, assumindo que seja decidível no sistema lógico, depende totalmente dos conjuntos de axiomas e regras de inferência .
Por exemplo, considere a lógica proposicional, para a qual existem várias caracterizações: Frege (1879), Nicod (1917) e Mendelson (1979). (Consulte esta pequena pesquisa para obter mais informações.)
O último sistema (Mendelson) possui três axiomas e uma regra de inferência (modus ponens). Dada essa breve caracterização, é realmente difícil provar até os teoremas mais triviais, digamos . Aqui, com força , quero dizer que o comprimento mínimo da prova é alto.φ→φ
Esse problema é denominado complexidade de prova . Para citar Beame & Pitassi :
fonte
Eu estava pensando sobre essa mesma pergunta outro dia, quando estava reproduzindo algumas das Palestras de Física de Feynman, e cheguei à lição 4 sobre conservação de energia. Na palestra, Feynman usa o exemplo de uma máquina simples que (através de algum sistema de alavancas ou polias ou qualquer outra coisa) reduz o peso de uma unidade em alguma distância x, e a usa para levantar um segundo peso de 3 unidades. Quão alto pode ser levantado o peso? Feynman observa que, se a máquina é reversível, não precisamos saber nada sobre o mecanismo da máquina - podemos tratá-la como uma caixa preta - e ela sempre elevará o peso na distância máxima possível ( x / 3 neste caso).
Isso tem um análogo em computação? A idéia de computação reversível lembra o trabalho de Landauer e Bennett, mas não tenho certeza de que esse seja o sentido do termo em que estamos interessados. Intuitivamente, se tivermos um algoritmo para algum problema ideal, não haverá "trabalho" desperdiçado sendo feito agitando bits; enquanto uma abordagem de força bruta para o mesmo problema jogaria fora os ciclos da CPU para a esquerda e para a direita. No entanto, imagino que se possa construir um circuito fisicamente reversível para qualquer um dos algoritmos.
Penso que o primeiro passo na abordagem de uma lei de conservação para complexidade computacional é descobrir exatamente o que deve ser conservado. Espaço e tempo são métricas importantes, mas fica claro a partir da existência de trocas de espaço / tempo que nenhuma delas será adequada como medida de quanto "trabalho" está sendo realizado por um algoritmo. Existem outras métricas, como reversões da cabeça da MT ou cruzamentos de células de fita que foram usadas. Nada disso realmente parece estar próximo da nossa intuição da quantidade de "trabalho" necessário para realizar um cálculo.
O outro lado do problema é descobrir exatamente em que esse trabalho é convertido. Depois de obter a saída de um programa, o que exatamente você ganhou?
fonte
Algumas observações sugerindo a existência de lei de conservação:
Se considerarmos reduções computáveis em tempo polinomial (ou espaço de log) como transformações entre problemas computacionais, as seguintes definições de classes de complexidade conhecidas sugerem a existência de alguma propriedade conservada sob transformações "eficientes". Assumindo então "dureza" parece ser a propriedade conservada.<p P≠NP
EDIT : é definido com mais precisão como sugerindo que a dureza dos problemas em é invariável durante a operação do complemento, enquanto não se sabe que a complementação preserva a dureza dos de (a menos que ).P = { L | G < p H o r N S A T , ˉ L < p H o r N S A T } P N P P = N PP P={L|L<pHornSAT,L¯<pHornSAT} P NP P=NP
fonte
Tao sugere a existência da lei de conservação da dificuldade em matemática: "para provar qualquer resultado genuinamente não trivial, é preciso fazer algum trabalho duro em algum lugar".
Ele argumenta que a dificuldade de algumas provas matemáticas sugere um limite inferior à quantidade de esforço necessária ao processo de prova do teorema.
fonte