Existem leis de conservação na teoria da complexidade?

46

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.

V Vinay
fonte
7
No começo, confundi o CVP com o Problema vetorial mais próximo (que é difícil para o NP). Então notei que é o problema do valor do circuito . Eu pensei que seria útil mencionar isso.
MS Dousti
5
pergunta interessante. Não tenho certeza que há uma resposta interessante embora :)
Suresh Venkat
7
Apenas uma observação: a dificuldade de provar a participação em NP (por exemplo) não é propriedade de um idioma, mas propriedade de uma descrição de um idioma. Por exemplo, é necessário algum esforço para provar que o conjunto de números primos está no NP, mas é trivial que o conjunto de números inteiros com um certificado Pratt esteja no NP.
Tsuyoshi Ito
2
Os limites inferiores do trade-time-espaço não são aplicáveis ​​como uma lei de conservação no sentido da redação desta pergunta?
Maverick Woo
1
A noção de profundidade computacional de Charles Bennett (originalmente "profundidade lógica") pode capturar parte da intuição de "trabalho necessário para demonstrar um fato de complexidade".
Aaron Sterling

Respostas:

13

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.

MattRS
fonte
2
+1 Ótima resposta! Eu sempre tive reflexões parecidas (@MattRS: envie-me um e-mail). A propósito, não acho que Emmy Noether seja "pouco conhecida", mas, na verdade, muito pelo contrário, embora talvez ela não seja bem conhecida no TCS. O primeiro teorema de Noether é bem conhecido pelos físicos, e os anéis noetherianos são um objeto central de estudo em álgebra comutativa e geometria algébrica. Vários outros teoremas importantes, principalmente nessas áreas, também levam o nome dela.
Joshua Grochow
Sim, foi isso que eu quis dizer; não é bem conhecido por comp sci. Eu sempre pensei que álgebra abstrata deveria ser mais amplamente ensinada em CS.
MattRS
Mesmo que esse argumento seja convincente, pergunto-me se ele é compatível com muitos problemas com um limite de aproximação acentuado. (Com isso, quero dizer um problema tal que é fácil obter um fator de aproximação , mas é difícil para todos ). Por que a relação entre a precisão necessária e o ganho de informações algorítmicas tão dramaticamente descontínuo? α>1αϵϵ>0
Srivatsan Narayanan
6

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 .

Uma prova em um sistema formal é apenas uma sequência de fórmulas, de modo que cada fórmula na sequência é um axioma ou é obtida de fórmulas anteriores na sequência, aplicando uma regra de inferência. Um teorema do sistema formal é apenas a última fórmula de uma prova.

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 :

Uma das questões mais básicas da lógica é a seguinte: Dada uma afirmação universalmente verdadeira (tautologia), qual é o comprimento da prova mais curta da afirmação em algum sistema axiomático de prova padrão? A versão lógica proposicional dessa questão é particularmente importante na ciência da computação, tanto para a prova de teoremas quanto para a teoria da complexidade. Questões algorítmicas importantes são: Existe um algoritmo eficiente que produzirá uma prova de qualquer tautologia? Existe um algoritmo eficiente para produzir a prova mais curta de qualquer tautologia? Tais questões de prova e complexidade de teoremas inspiraram o artigo seminal de Cook sobre a completude de NP, especialmente intitulado "A complexidade dos procedimentos de prova de teoremas" e foram contempladas ainda mais cedo por Gödel em sua agora conhecida carta a von Neumann.

MS Dousti
fonte
6

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?

Kurt
fonte
3

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.<pPNP

P={L|L<pHornSAT}

NP={L|L<p3SAT}

CoNP={L|L¯<p3SAT}

NPC={L|L<p3SAT,3SAT<pL}

PC={L|L<pHornSAT,HornSAT<pL}

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 PPP={L|L<pHornSAT,L¯<pHornSAT}PNPP=NP

Mohammad Al-Turkistany
fonte